<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE Safe #-}</span><span>
</span><span id="line-2"></span><span class="hs-comment">-- | contains a prettyprinter for the</span><span>
</span><span id="line-3"></span><span class="hs-comment">-- Template Haskell datatypes</span><span>
</span><span id="line-4"></span><span>
</span><span id="line-5"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Language.Haskell.TH.Ppr</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-6"></span><span>    </span><span class="hs-comment">-- All of the exports from this module should</span><span>
</span><span id="line-7"></span><span>    </span><span class="hs-comment">-- be &quot;public&quot; functions.  The main module TH</span><span>
</span><span id="line-8"></span><span>    </span><span class="hs-comment">-- re-exports them all.</span><span>
</span><span id="line-9"></span><span>
</span><span id="line-10"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.html#"><span class="hs-identifier">Text.PrettyPrint</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#render"><span class="hs-identifier">render</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-11"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html"><span class="hs-identifier">Language.Haskell.TH.PprLib</span></a></span><span>
</span><span id="line-12"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html"><span class="hs-identifier">Language.Haskell.TH.Syntax</span></a></span><span>
</span><span id="line-13"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Word.html#"><span class="hs-identifier">Data.Word</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier">Word8</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-14"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Char.html#"><span class="hs-identifier">Data.Char</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Unicode.html#toLower"><span class="hs-identifier">toLower</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Char.html#chr"><span class="hs-identifier">chr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-15"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#"><span class="hs-identifier">GHC.Show</span></a></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#showMultiLineString"><span class="hs-identifier">showMultiLineString</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-16"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghc-boot-th/src/GHC.Lexeme.html#"><span class="hs-identifier">GHC.Lexeme</span></a></span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../ghc-boot-th/src/GHC.Lexeme.html#startsVarSym"><span class="hs-identifier">startsVarSym</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-17"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Ratio.html#"><span class="hs-identifier">Data.Ratio</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Real.html#numerator"><span class="hs-identifier">numerator</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Real.html#denominator"><span class="hs-identifier">denominator</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-18"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#%3C%3E"><span class="hs-operator">(&lt;&gt;)</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-type">nestDepth</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span>
</span><span id="line-21"></span><span id="nestDepth"><span class="annot"><span class="annottext">nestDepth :: SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var hs-var">nestDepth</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">4</span></span><span>
</span><span id="line-22"></span><span>
</span><span id="line-23"></span><span class="hs-keyword">type</span><span> </span><span id="Precedence"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Precedence"><span class="hs-identifier hs-var">Precedence</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span>
</span><span id="line-24"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-type">appPrec</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-type">opPrec</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-type">unopPrec</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#sigPrec"><span class="hs-identifier hs-type">sigPrec</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-type">noPrec</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Precedence"><span class="hs-identifier hs-type">Precedence</span></a></span><span>
</span><span id="line-25"></span><span id="appPrec"><span class="annot"><span class="annottext">appPrec :: SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var hs-var">appPrec</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">4</span></span><span>    </span><span class="hs-comment">-- Argument of a function application</span><span>
</span><span id="line-26"></span><span id="opPrec"><span class="annot"><span class="annottext">opPrec :: SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var hs-var">opPrec</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">3</span></span><span>    </span><span class="hs-comment">-- Argument of an infix operator</span><span>
</span><span id="line-27"></span><span id="unopPrec"><span class="annot"><span class="annottext">unopPrec :: SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-var hs-var">unopPrec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">2</span></span><span>    </span><span class="hs-comment">-- Argument of an unresolved infix operator</span><span>
</span><span id="line-28"></span><span id="sigPrec"><span class="annot"><span class="annottext">sigPrec :: SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#sigPrec"><span class="hs-identifier hs-var hs-var">sigPrec</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span>    </span><span class="hs-comment">-- Argument of an explicit type signature</span><span>
</span><span id="line-29"></span><span id="noPrec"><span class="annot"><span class="annottext">noPrec :: SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var hs-var">noPrec</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">0</span></span><span>    </span><span class="hs-comment">-- Others</span><span>
</span><span id="line-30"></span><span>
</span><span id="line-31"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-type">parensIf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-32"></span><span id="parensIf"><span class="annot"><span class="annottext">parensIf :: Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var hs-var">parensIf</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span> </span><span id="local-6989586621679164571"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164571"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164571"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-33"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span><span> </span><span id="local-6989586621679164569"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164569"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164569"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-34"></span><span>
</span><span id="line-35"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span id="local-6989586621679164956"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprint"><span class="hs-identifier hs-type">pprint</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164956"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679164956"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span></span><span>
</span><span id="line-38"></span><span id="pprint"><span class="annot"><span class="annottext">pprint :: forall a. Ppr a =&gt; a -&gt; String
</span><a href="Language.Haskell.TH.Ppr.html#pprint"><span class="hs-identifier hs-var hs-var">pprint</span></a></span></span><span> </span><span id="local-6989586621679164565"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164565"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; String
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#render"><span class="hs-identifier hs-var">render</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; String) -&gt; Doc -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#to_HPJ_Doc"><span class="hs-identifier hs-var">to_HPJ_Doc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164565"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-39"></span><span>
</span><span id="line-40"></span><span class="hs-keyword">class</span><span> </span><span id="Ppr"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-var">Ppr</span></a></span></span><span> </span><span id="local-6989586621679164950"><span class="annot"><a href="#local-6989586621679164950"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-41"></span><span>    </span><span id="ppr"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-type">ppr</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679164950"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-42"></span><span>    </span><span id="ppr_list"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_list"><span class="hs-identifier hs-type">ppr_list</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679164950"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-43"></span><span>    </span><span id="local-6989586621679164560"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_list"><span class="hs-identifier hs-var hs-var">ppr_list</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; ([a] -&gt; [Doc]) -&gt; [a] -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span></span><span>
</span><span id="line-44"></span><span>
</span><span id="line-45"></span><span id="local-6989586621679164958"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164554"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164958"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679164958"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-46"></span><span>    </span><span id="local-6989586621679164551"><span class="annot"><span class="annottext">ppr :: [a] -&gt; Doc
</span><a href="#local-6989586621679164551"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621679164550"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164550"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_list"><span class="hs-identifier hs-var">ppr_list</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164550"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-47"></span><span>
</span><span id="line-48"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-49"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164547"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-50"></span><span>    </span><span id="local-6989586621679164546"><span class="annot"><span class="annottext">ppr :: Name -&gt; Doc
</span><a href="#local-6989586621679164546"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621679164545"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164545"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName"><span class="hs-identifier hs-var">pprName</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164545"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-53"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164541"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Info"><span class="hs-identifier hs-type">Info</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-54"></span><span>    </span><span id="local-6989586621679164529"><span class="annot"><span class="annottext">ppr :: Info -&gt; Doc
</span><a href="#local-6989586621679164529"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyConI"><span class="hs-identifier hs-type">TyConI</span></a></span><span> </span><span id="local-6989586621679164527"><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164527"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Dec -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164527"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-55"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ClassI"><span class="hs-identifier hs-type">ClassI</span></a></span><span> </span><span id="local-6989586621679164525"><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164525"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621679164524"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164524"><span class="hs-identifier hs-var">is</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Dec -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164525"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Dec -&gt; Doc) -&gt; [Dec] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Dec -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164524"><span class="hs-identifier hs-var">is</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-56"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FamilyI"><span class="hs-identifier hs-type">FamilyI</span></a></span><span> </span><span id="local-6989586621679164521"><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164521"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621679164520"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164520"><span class="hs-identifier hs-var">is</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Dec -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164521"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Dec -&gt; Doc) -&gt; [Dec] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Dec -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164520"><span class="hs-identifier hs-var">is</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-57"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PrimTyConI"><span class="hs-identifier hs-type">PrimTyConI</span></a></span><span> </span><span id="local-6989586621679164518"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164518"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621679164517"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164517"><span class="hs-identifier hs-var">arity</span></a></span></span><span> </span><span id="local-6989586621679164516"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164516"><span class="hs-identifier hs-var">is_unlifted</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-58"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Primitive&quot;</span></span><span>
</span><span id="line-59"></span><span>        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164516"><span class="hs-identifier hs-var">is_unlifted</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;unlifted&quot;</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-60"></span><span>        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type constructor&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#quotes"><span class="hs-identifier hs-var">quotes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164518"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-61"></span><span>        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;arity&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164517"><span class="hs-identifier hs-var">arity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-62"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ClassOpI"><span class="hs-identifier hs-type">ClassOpI</span></a></span><span> </span><span id="local-6989586621679164509"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164509"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621679164508"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164508"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679164507"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164507"><span class="hs-identifier hs-var">cls</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-63"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Class op from&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164507"><span class="hs-identifier hs-var">cls</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_sig"><span class="hs-identifier hs-var">ppr_sig</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164509"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164508"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-64"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DataConI"><span class="hs-identifier hs-type">DataConI</span></a></span><span> </span><span id="local-6989586621679164502"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164502"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621679164501"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164501"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679164500"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164500"><span class="hs-identifier hs-var">tc</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-65"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Constructor from&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164500"><span class="hs-identifier hs-var">tc</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_sig"><span class="hs-identifier hs-var">ppr_sig</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164502"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164501"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-66"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatSynI"><span class="hs-identifier hs-type">PatSynI</span></a></span><span> </span><span id="local-6989586621679164498"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164498"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span id="local-6989586621679164497"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164497"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPatSynSig"><span class="hs-identifier hs-var">pprPatSynSig</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164498"><span class="hs-identifier hs-var">nm</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164497"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-67"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarI"><span class="hs-identifier hs-type">TyVarI</span></a></span><span> </span><span id="local-6989586621679164494"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164494"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621679164493"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164493"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-68"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Type variable&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164494"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164493"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-69"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#VarI"><span class="hs-identifier hs-type">VarI</span></a></span><span> </span><span id="local-6989586621679164490"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164490"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621679164489"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164489"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679164488"><span class="annot"><span class="annottext">Maybe Dec
</span><a href="#local-6989586621679164488"><span class="hs-identifier hs-var">mb_d</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-70"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Name -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_sig"><span class="hs-identifier hs-var">ppr_sig</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164490"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164489"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-71"></span><span>              </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe Dec
</span><a href="#local-6989586621679164488"><span class="hs-identifier hs-var">mb_d</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">Maybe Dec
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164487"><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164487"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Dec -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Dec
</span><a href="#local-6989586621679164487"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">]</span><span>
</span><span id="line-72"></span><span>
</span><span id="line-73"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_sig"><span class="hs-identifier hs-type">ppr_sig</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-74"></span><span id="ppr_sig"><span class="annot"><span class="annottext">ppr_sig :: Name -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_sig"><span class="hs-identifier hs-var hs-var">ppr_sig</span></a></span></span><span> </span><span id="local-6989586621679164486"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164486"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621679164485"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164485"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164486"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164485"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-75"></span><span>
</span><span id="line-76"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFixity"><span class="hs-identifier hs-type">pprFixity</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Fixity"><span class="hs-identifier hs-type">Fixity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-77"></span><span id="pprFixity"><span class="annot"><span class="annottext">pprFixity :: Name -&gt; Fixity -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFixity"><span class="hs-identifier hs-var hs-var">pprFixity</span></a></span></span><span> </span><span class="annot"><span class="annottext">Name
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679164480"><span class="annot"><span class="annottext">Fixity
</span><a href="#local-6989586621679164480"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Fixity
</span><a href="#local-6989586621679164480"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity -&gt; Fixity -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3D%3D"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity
</span><a href="Language.Haskell.TH.Syntax.html#defaultFixity"><span class="hs-identifier hs-var">defaultFixity</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-78"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFixity"><span class="hs-identifier hs-var">pprFixity</span></a></span><span> </span><span id="local-6989586621679164478"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164478"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Fixity"><span class="hs-identifier hs-type">Fixity</span></a></span><span> </span><span id="local-6989586621679164476"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164476"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span id="local-6989586621679164475"><span class="annot"><span class="annottext">FixityDirection
</span><a href="#local-6989586621679164475"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FixityDirection -&gt; Doc
</span><a href="#local-6989586621679164474"><span class="hs-identifier hs-var">ppr_fix</span></a></span><span> </span><span class="annot"><span class="annottext">FixityDirection
</span><a href="#local-6989586621679164475"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164476"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164478"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-79"></span><span>    </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679164474"><span class="annot"><span class="annottext">ppr_fix :: FixityDirection -&gt; Doc
</span><a href="#local-6989586621679164474"><span class="hs-identifier hs-var hs-var">ppr_fix</span></a></span></span><span> </span><span class="annot"><span class="annottext">FixityDirection
</span><a href="Language.Haskell.TH.Syntax.html#InfixR"><span class="hs-identifier hs-var">InfixR</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;infixr&quot;</span></span><span>
</span><span id="line-80"></span><span>          </span><span class="annot"><a href="#local-6989586621679164474"><span class="hs-identifier hs-var">ppr_fix</span></a></span><span> </span><span class="annot"><span class="annottext">FixityDirection
</span><a href="Language.Haskell.TH.Syntax.html#InfixL"><span class="hs-identifier hs-var">InfixL</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;infixl&quot;</span></span><span>
</span><span id="line-81"></span><span>          </span><span class="annot"><a href="#local-6989586621679164474"><span class="hs-identifier hs-var">ppr_fix</span></a></span><span> </span><span class="annot"><span class="annottext">FixityDirection
</span><a href="Language.Haskell.TH.Syntax.html#InfixN"><span class="hs-identifier hs-var">InfixN</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;infix&quot;</span></span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span class="hs-comment">-- | Pretty prints a pattern synonym type signature</span><span>
</span><span id="line-84"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPatSynSig"><span class="hs-identifier hs-type">pprPatSynSig</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatSynType"><span class="hs-identifier hs-type">PatSynType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-85"></span><span id="pprPatSynSig"><span class="annot"><span class="annottext">pprPatSynSig :: Name -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPatSynSig"><span class="hs-identifier hs-var hs-var">pprPatSynSig</span></a></span></span><span> </span><span id="local-6989586621679164469"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164469"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span id="local-6989586621679164468"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164468"><span class="hs-identifier hs-var">ty</span></a></span></span><span>
</span><span id="line-86"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pattern&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164469"><span class="hs-identifier hs-var">nm</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPatSynType"><span class="hs-identifier hs-var">pprPatSynType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164468"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-87"></span><span>
</span><span id="line-88"></span><span class="hs-comment">-- | Pretty prints a pattern synonym's type; follows the usual</span><span>
</span><span id="line-89"></span><span class="hs-comment">-- conventions to print a pattern synonym type compactly, yet</span><span>
</span><span id="line-90"></span><span class="hs-comment">-- unambiguously. See the note on 'PatSynType' and the section on</span><span>
</span><span id="line-91"></span><span class="hs-comment">-- pattern synonyms in the GHC user's guide for more information.</span><span>
</span><span id="line-92"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPatSynType"><span class="hs-identifier hs-type">pprPatSynType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatSynType"><span class="hs-identifier hs-type">PatSynType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-93"></span><span id="pprPatSynType"><span class="annot"><span class="annottext">pprPatSynType :: Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPatSynType"><span class="hs-identifier hs-var hs-var">pprPatSynType</span></a></span></span><span> </span><span id="local-6989586621679164465"><span class="annot"><span class="annottext">ty :: Type
</span><a href="#local-6989586621679164465"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallT"><span class="hs-identifier hs-type">ForallT</span></a></span><span> </span><span id="local-6989586621679164463"><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679164463"><span class="hs-identifier hs-var">uniTys</span></a></span></span><span> </span><span id="local-6989586621679164462"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164462"><span class="hs-identifier hs-var">reqs</span></a></span></span><span> </span><span id="local-6989586621679164461"><span class="annot"><span class="annottext">ty' :: Type
</span><a href="#local-6989586621679164461"><span class="hs-identifier hs-var">ty'</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallT"><span class="hs-identifier hs-type">ForallT</span></a></span><span> </span><span id="local-6989586621679164460"><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679164460"><span class="hs-identifier hs-var">exTys</span></a></span></span><span> </span><span id="local-6989586621679164459"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164459"><span class="hs-identifier hs-var">provs</span></a></span></span><span> </span><span id="local-6989586621679164458"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164458"><span class="hs-identifier hs-var">ty''</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-94"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679164460"><span class="hs-identifier hs-var">exTys</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><span class="annottext">Cxt -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164459"><span class="hs-identifier hs-var">provs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Cxt -&gt; Type -&gt; Type
</span><a href="Language.Haskell.TH.Syntax.html#ForallT"><span class="hs-identifier hs-var">ForallT</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679164463"><span class="hs-identifier hs-var">uniTys</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164462"><span class="hs-identifier hs-var">reqs</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164458"><span class="hs-identifier hs-var">ty''</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-95"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679164463"><span class="hs-identifier hs-var">uniTys</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164462"><span class="hs-identifier hs-var">reqs</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164456"><span class="hs-identifier hs-var">noreqs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164461"><span class="hs-identifier hs-var">ty'</span></a></span><span>
</span><span id="line-96"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164462"><span class="hs-identifier hs-var">reqs</span></a></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="#local-6989586621679164455"><span class="hs-keyword hs-var">forall</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679164463"><span class="hs-identifier hs-var">uniTys</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164456"><span class="hs-identifier hs-var">noreqs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164461"><span class="hs-identifier hs-var">ty'</span></a></span><span>
</span><span id="line-97"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164465"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-98"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679164456"><span class="annot"><span class="annottext">noreqs :: Doc
</span><a href="#local-6989586621679164456"><span class="hs-identifier hs-var hs-var">noreqs</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;() =&gt;&quot;</span></span><span>
</span><span id="line-99"></span><span>        </span><span id="local-6989586621679164455"><span class="annot"><span class="annottext">forall :: [a] -&gt; Doc
</span><a href="#local-6989586621679164455"><span class="hs-keyword hs-var hs-var">forall</span></a></span></span><span> </span><span id="local-6989586621679164452"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164452"><span class="hs-identifier hs-var">tvs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;forall&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164452"><span class="hs-identifier hs-var">tvs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.&quot;</span></span><span>
</span><span id="line-100"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPatSynType"><span class="hs-identifier hs-var">pprPatSynType</span></a></span><span> </span><span id="local-6989586621679164450"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164450"><span class="hs-identifier hs-var">ty</span></a></span></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164450"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-103"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164447"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Module"><span class="hs-identifier hs-type">Module</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-104"></span><span>  </span><span id="local-6989586621679164446"><span class="annot"><span class="annottext">ppr :: Module -&gt; Doc
</span><a href="#local-6989586621679164446"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621679164444"><span class="annot"><span class="annottext">PkgName
</span><a href="#local-6989586621679164444"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span id="local-6989586621679164443"><span class="annot"><span class="annottext">ModName
</span><a href="#local-6989586621679164443"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PkgName -&gt; String
</span><a href="Language.Haskell.TH.Syntax.html#pkgString"><span class="hs-identifier hs-var">pkgString</span></a></span><span> </span><span class="annot"><span class="annottext">PkgName
</span><a href="#local-6989586621679164444"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModName -&gt; String
</span><a href="Language.Haskell.TH.Syntax.html#modString"><span class="hs-identifier hs-var">modString</span></a></span><span> </span><span class="annot"><span class="annottext">ModName
</span><a href="#local-6989586621679164443"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-105"></span><span>
</span><span id="line-106"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164438"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ModuleInfo"><span class="hs-identifier hs-type">ModuleInfo</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-107"></span><span>  </span><span id="local-6989586621679164436"><span class="annot"><span class="annottext">ppr :: ModuleInfo -&gt; Doc
</span><a href="#local-6989586621679164436"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ModuleInfo"><span class="hs-identifier hs-type">ModuleInfo</span></a></span><span> </span><span id="local-6989586621679164434"><span class="annot"><span class="annottext">[Module]
</span><a href="#local-6989586621679164434"><span class="hs-identifier hs-var">imps</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Module&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Module -&gt; Doc) -&gt; [Module] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Module]
</span><a href="#local-6989586621679164434"><span class="hs-identifier hs-var">imps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-110"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164431"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Exp"><span class="hs-identifier hs-type">Exp</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-111"></span><span>    </span><span id="local-6989586621679164430"><span class="annot"><span class="annottext">ppr :: Exp -&gt; Doc
</span><a href="#local-6989586621679164430"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPrefixOcc"><span class="hs-identifier hs-type">pprPrefixOcc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-114"></span><span class="hs-comment">-- Print operators with parens around them</span><span>
</span><span id="line-115"></span><span id="pprPrefixOcc"><span class="annot"><span class="annottext">pprPrefixOcc :: Name -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPrefixOcc"><span class="hs-identifier hs-var hs-var">pprPrefixOcc</span></a></span></span><span> </span><span id="local-6989586621679164428"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164428"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Bool
</span><a href="Language.Haskell.TH.Ppr.html#isSymOcc"><span class="hs-identifier hs-var">isSymOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164428"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164428"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-116"></span><span>
</span><span id="line-117"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#isSymOcc"><span class="hs-identifier hs-type">isSymOcc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-118"></span><span id="isSymOcc"><span class="annot"><span class="annottext">isSymOcc :: Name -&gt; Bool
</span><a href="Language.Haskell.TH.Ppr.html#isSymOcc"><span class="hs-identifier hs-var hs-var">isSymOcc</span></a></span></span><span> </span><span id="local-6989586621679164426"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164426"><span class="hs-identifier hs-var">n</span></a></span></span><span>
</span><span id="line-119"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Name -&gt; String
</span><a href="Language.Haskell.TH.Syntax.html#nameBase"><span class="hs-identifier hs-var">nameBase</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164426"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-120"></span><span>      </span><span class="hs-special">[</span><span class="hs-special">]</span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span>  </span><span class="hs-comment">-- Empty name; weird</span><span>
</span><span id="line-121"></span><span>      </span><span class="hs-special">(</span><span id="local-6989586621679164424"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679164424"><span class="hs-identifier hs-var">c</span></a></span></span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-type">:</span></a></span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../ghc-boot-th/src/GHC.Lexeme.html#startsVarSym"><span class="hs-identifier hs-var">startsVarSym</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679164424"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-122"></span><span>                   </span><span class="hs-comment">-- c.f. OccName.startsVarSym in GHC itself</span><span>
</span><span id="line-123"></span><span>
</span><span id="line-124"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-type">pprInfixExp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Exp"><span class="hs-identifier hs-type">Exp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-125"></span><span id="pprInfixExp"><span class="annot"><span class="annottext">pprInfixExp :: Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-var hs-var">pprInfixExp</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#VarE"><span class="hs-identifier hs-type">VarE</span></a></span><span> </span><span id="local-6989586621679164421"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164421"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164421"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-126"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-var">pprInfixExp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ConE"><span class="hs-identifier hs-type">ConE</span></a></span><span> </span><span id="local-6989586621679164418"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164418"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164418"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-127"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-var">pprInfixExp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboundVarE"><span class="hs-identifier hs-type">UnboundVarE</span></a></span><span> </span><span id="local-6989586621679164416"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164416"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164416"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-128"></span><span class="hs-comment">-- This case will only ever be reached in exceptional circumstances.</span><span>
</span><span id="line-129"></span><span class="hs-comment">-- For example, when printing an error message in case of a malformed expression.</span><span>
</span><span id="line-130"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-var">pprInfixExp</span></a></span><span> </span><span id="local-6989586621679164415"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164415"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;`&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164415"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;`&quot;</span></span><span>
</span><span id="line-131"></span><span>
</span><span id="line-132"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-type">pprExp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Precedence"><span class="hs-identifier hs-type">Precedence</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Exp"><span class="hs-identifier hs-type">Exp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-133"></span><span id="pprExp"><span class="annot"><span class="annottext">pprExp :: SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var hs-var">pprExp</span></a></span></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#VarE"><span class="hs-identifier hs-type">VarE</span></a></span><span> </span><span id="local-6989586621679164414"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164414"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164414"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-134"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ConE"><span class="hs-identifier hs-type">ConE</span></a></span><span> </span><span id="local-6989586621679164413"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164413"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164413"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-135"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164412"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164412"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LitE"><span class="hs-identifier hs-type">LitE</span></a></span><span> </span><span id="local-6989586621679164410"><span class="annot"><span class="annottext">Lit
</span><a href="#local-6989586621679164410"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Lit -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164412"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Lit
</span><a href="#local-6989586621679164410"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-136"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164408"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164408"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppE"><span class="hs-identifier hs-type">AppE</span></a></span><span> </span><span id="local-6989586621679164406"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164406"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621679164405"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164405"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164408"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E%3D"><span class="hs-operator hs-var">&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164406"><span class="hs-identifier hs-var">e1</span></a></span><span>
</span><span id="line-137"></span><span>                                              </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164405"><span class="hs-identifier hs-var">e2</span></a></span><span>
</span><span id="line-138"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164404"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164404"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppTypeE"><span class="hs-identifier hs-type">AppTypeE</span></a></span><span> </span><span id="local-6989586621679164402"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164402"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621679164401"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164401"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-139"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164404"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E%3D"><span class="hs-operator hs-var">&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164402"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'@'</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164401"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-140"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ParensE"><span class="hs-identifier hs-type">ParensE</span></a></span><span> </span><span id="local-6989586621679164397"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164397"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164397"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-141"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164396"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164396"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UInfixE"><span class="hs-identifier hs-type">UInfixE</span></a></span><span> </span><span id="local-6989586621679164394"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164394"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621679164393"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164393"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621679164392"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164392"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-142"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164396"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-var">unopPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-var">unopPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164394"><span class="hs-identifier hs-var">e1</span></a></span><span>
</span><span id="line-143"></span><span>                         </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-var">pprInfixExp</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164393"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-144"></span><span>                         </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-var">unopPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164392"><span class="hs-identifier hs-var">e2</span></a></span><span>
</span><span id="line-145"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164390"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164390"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixE"><span class="hs-identifier hs-type">InfixE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164388"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164388"><span class="hs-identifier hs-var">e1</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679164387"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164387"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164386"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164386"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-146"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164390"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E%3D"><span class="hs-operator hs-var">&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164388"><span class="hs-identifier hs-var">e1</span></a></span><span>
</span><span id="line-147"></span><span>                        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-var">pprInfixExp</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164387"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-148"></span><span>                        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164386"><span class="hs-identifier hs-var">e2</span></a></span><span>
</span><span id="line-149"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixE"><span class="hs-identifier hs-type">InfixE</span></a></span><span> </span><span id="local-6989586621679164385"><span class="annot"><span class="annottext">Maybe Exp
</span><a href="#local-6989586621679164385"><span class="hs-identifier hs-var">me1</span></a></span></span><span> </span><span id="local-6989586621679164384"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164384"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621679164383"><span class="annot"><span class="annottext">Maybe Exp
</span><a href="#local-6989586621679164383"><span class="hs-identifier hs-var">me2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Maybe Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprMaybeExp"><span class="hs-identifier hs-var">pprMaybeExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Exp
</span><a href="#local-6989586621679164385"><span class="hs-identifier hs-var">me1</span></a></span><span>
</span><span id="line-150"></span><span>                                    </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprInfixExp"><span class="hs-identifier hs-var">pprInfixExp</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164384"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-151"></span><span>                                    </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Maybe Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprMaybeExp"><span class="hs-identifier hs-var">pprMaybeExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Exp
</span><a href="#local-6989586621679164383"><span class="hs-identifier hs-var">me2</span></a></span><span>
</span><span id="line-152"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164381"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164381"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LamE"><span class="hs-identifier hs-type">LamE</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span id="local-6989586621679164379"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164379"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164381"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164379"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="hs-comment">-- #13856</span><span>
</span><span id="line-153"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164378"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164378"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LamE"><span class="hs-identifier hs-type">LamE</span></a></span><span> </span><span id="local-6989586621679164377"><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164377"><span class="hs-identifier hs-var">ps</span></a></span></span><span> </span><span id="local-6989586621679164376"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164376"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164378"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Pat -&gt; Doc) -&gt; [Pat] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164377"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-154"></span><span>                                           </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164376"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-155"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164374"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164374"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LamCaseE"><span class="hs-identifier hs-type">LamCaseE</span></a></span><span> </span><span id="local-6989586621679164372"><span class="annot"><span class="annottext">[Match]
</span><a href="#local-6989586621679164372"><span class="hs-identifier hs-var">ms</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164374"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-156"></span><span>                       </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\\case&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Match] -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Match]
</span><a href="#local-6989586621679164372"><span class="hs-identifier hs-var">ms</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-157"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164370"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164370"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupE"><span class="hs-identifier hs-type">TupE</span></a></span><span> </span><span id="local-6989586621679164368"><span class="annot"><span class="annottext">[Maybe Exp]
</span><a href="#local-6989586621679164368"><span class="hs-identifier hs-var">es</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-158"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164367"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164367"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[Maybe Exp]
</span><a href="#local-6989586621679164368"><span class="hs-identifier hs-var">es</span></a></span><span>
</span><span id="line-159"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164370"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Exp
</span><a href="Language.Haskell.TH.Syntax.html#ConE"><span class="hs-identifier hs-var">ConE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Name
</span><a href="Language.Haskell.TH.Syntax.html#tupleDataName"><span class="hs-identifier hs-var">tupleDataName</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Exp -&gt; Exp
</span><a href="Language.Haskell.TH.Syntax.html#AppE"><span class="hs-operator hs-var">`AppE`</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164367"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Maybe Exp -&gt; Doc) -&gt; [Maybe Exp] -&gt; Doc
forall a. (a -&gt; Doc) -&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepWith"><span class="hs-identifier hs-var">commaSepWith</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Maybe Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprMaybeExp"><span class="hs-identifier hs-var">pprMaybeExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Maybe Exp]
</span><a href="#local-6989586621679164368"><span class="hs-identifier hs-var">es</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboxedTupE"><span class="hs-identifier hs-type">UnboxedTupE</span></a></span><span> </span><span id="local-6989586621679164363"><span class="annot"><span class="annottext">[Maybe Exp]
</span><a href="#local-6989586621679164363"><span class="hs-identifier hs-var">es</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#hashParens"><span class="hs-identifier hs-var">hashParens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Maybe Exp -&gt; Doc) -&gt; [Maybe Exp] -&gt; Doc
forall a. (a -&gt; Doc) -&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepWith"><span class="hs-identifier hs-var">commaSepWith</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Maybe Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprMaybeExp"><span class="hs-identifier hs-var">pprMaybeExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Maybe Exp]
</span><a href="#local-6989586621679164363"><span class="hs-identifier hs-var">es</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-163"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboxedSumE"><span class="hs-identifier hs-type">UnboxedSumE</span></a></span><span> </span><span id="local-6989586621679164360"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164360"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621679164359"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164359"><span class="hs-identifier hs-var">alt</span></a></span></span><span> </span><span id="local-6989586621679164358"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164358"><span class="hs-identifier hs-var">arity</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SumAlt -&gt; SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#unboxedSumBars"><span class="hs-identifier hs-var">unboxedSumBars</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164360"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164359"><span class="hs-identifier hs-var">alt</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164358"><span class="hs-identifier hs-var">arity</span></a></span><span>
</span><span id="line-164"></span><span class="hs-comment">-- Nesting in Cond is to avoid potential problems in do statements</span><span>
</span><span id="line-165"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164356"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164356"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#CondE"><span class="hs-identifier hs-type">CondE</span></a></span><span> </span><span id="local-6989586621679164354"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164354"><span class="hs-identifier hs-var">guard</span></a></span></span><span> </span><span id="local-6989586621679164353"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164353"><span class="hs-identifier hs-var">true</span></a></span></span><span> </span><span id="local-6989586621679164352"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164352"><span class="hs-identifier hs-var">false</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-166"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164356"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;if&quot;</span></span><span>   </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164354"><span class="hs-identifier hs-var">guard</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-167"></span><span>                       </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;then&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164353"><span class="hs-identifier hs-var">true</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-168"></span><span>                       </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;else&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164352"><span class="hs-identifier hs-var">false</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-169"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164350"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164350"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#MultiIfE"><span class="hs-identifier hs-type">MultiIfE</span></a></span><span> </span><span id="local-6989586621679164348"><span class="annot"><span class="annottext">[(Guard, Exp)]
</span><a href="#local-6989586621679164348"><span class="hs-identifier hs-var">alts</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-170"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164350"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-171"></span><span>      </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[(Guard, Exp)]
</span><a href="#local-6989586621679164348"><span class="hs-identifier hs-var">alts</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-172"></span><span>        </span><span class="hs-special">[</span><span class="hs-special">]</span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;if {}&quot;</span></span><span class="hs-special">]</span><span>
</span><span id="line-173"></span><span>        </span><span class="hs-special">(</span><span id="local-6989586621679164347"><span class="annot"><span class="annottext">(Guard, Exp)
</span><a href="#local-6989586621679164347"><span class="hs-identifier hs-var">alt</span></a></span></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-type">:</span></a></span><span> </span><span id="local-6989586621679164346"><span class="annot"><span class="annottext">[(Guard, Exp)]
</span><a href="#local-6989586621679164346"><span class="hs-identifier hs-var">alts'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;if&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; (Guard, Exp) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprGuarded"><span class="hs-identifier hs-var">pprGuarded</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span> </span><span class="annot"><span class="annottext">(Guard, Exp)
</span><a href="#local-6989586621679164347"><span class="hs-identifier hs-var">alt</span></a></span><span>
</span><span id="line-174"></span><span>                         </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span> </span><span class="annot"><span class="annottext">((Guard, Exp) -&gt; Doc) -&gt; [(Guard, Exp)] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">3</span></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; ((Guard, Exp) -&gt; Doc) -&gt; (Guard, Exp) -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; (Guard, Exp) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprGuarded"><span class="hs-identifier hs-var">pprGuarded</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(Guard, Exp)]
</span><a href="#local-6989586621679164346"><span class="hs-identifier hs-var">alts'</span></a></span><span>
</span><span id="line-175"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164343"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164343"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LetE"><span class="hs-identifier hs-type">LetE</span></a></span><span> </span><span id="local-6989586621679164341"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164341"><span class="hs-identifier hs-var">ds_</span></a></span></span><span> </span><span id="local-6989586621679164340"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164340"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164343"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;let&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="#local-6989586621679164339"><span class="hs-identifier hs-var">pprDecs</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164341"><span class="hs-identifier hs-var">ds_</span></a></span><span>
</span><span id="line-176"></span><span>                                             </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; in&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164340"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-177"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-178"></span><span>    </span><span id="local-6989586621679164339"><span class="annot"><span class="annottext">pprDecs :: [a] -&gt; Doc
</span><a href="#local-6989586621679164339"><span class="hs-identifier hs-var hs-var">pprDecs</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-179"></span><span>    </span><span class="annot"><a href="#local-6989586621679164339"><span class="hs-identifier hs-var">pprDecs</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621679164335"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164335"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164335"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-180"></span><span>    </span><span class="annot"><a href="#local-6989586621679164339"><span class="hs-identifier hs-var">pprDecs</span></a></span><span> </span><span id="local-6989586621679164334"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164334"><span class="hs-identifier hs-var">ds</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[a] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#semiSep"><span class="hs-identifier hs-var">semiSep</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164334"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-181"></span><span>
</span><span id="line-182"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164331"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164331"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#CaseE"><span class="hs-identifier hs-type">CaseE</span></a></span><span> </span><span id="local-6989586621679164329"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164329"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621679164328"><span class="annot"><span class="annottext">[Match]
</span><a href="#local-6989586621679164328"><span class="hs-identifier hs-var">ms</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-183"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164331"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;case&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164329"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;of&quot;</span></span><span>
</span><span id="line-184"></span><span>                        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Match] -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Match]
</span><a href="#local-6989586621679164328"><span class="hs-identifier hs-var">ms</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-185"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164327"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164327"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DoE"><span class="hs-identifier hs-type">DoE</span></a></span><span> </span><span id="local-6989586621679164325"><span class="annot"><span class="annottext">Maybe ModName
</span><a href="#local-6989586621679164325"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span id="local-6989586621679164324"><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164324"><span class="hs-identifier hs-var">ss_</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164327"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-186"></span><span>    </span><span class="annot"><span class="annottext">Maybe ModName -&gt; Doc
</span><a href="#local-6989586621679164323"><span class="hs-identifier hs-var">pprQualifier</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe ModName
</span><a href="#local-6989586621679164325"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;do&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="#local-6989586621679164322"><span class="hs-identifier hs-var">pprStms</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164324"><span class="hs-identifier hs-var">ss_</span></a></span><span>
</span><span id="line-187"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-188"></span><span>    </span><span id="local-6989586621679164323"><span class="annot"><span class="annottext">pprQualifier :: Maybe ModName -&gt; Doc
</span><a href="#local-6989586621679164323"><span class="hs-identifier hs-var hs-var">pprQualifier</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe ModName
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-189"></span><span>    </span><span class="annot"><a href="#local-6989586621679164323"><span class="hs-identifier hs-var">pprQualifier</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164321"><span class="annot"><span class="annottext">ModName
</span><a href="#local-6989586621679164321"><span class="hs-identifier hs-var">modName</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModName -&gt; String
</span><a href="Language.Haskell.TH.Syntax.html#modString"><span class="hs-identifier hs-var">modString</span></a></span><span> </span><span class="annot"><span class="annottext">ModName
</span><a href="#local-6989586621679164321"><span class="hs-identifier hs-var">modName</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'.'</span></span><span>
</span><span id="line-190"></span><span>    </span><span id="local-6989586621679164322"><span class="annot"><span class="annottext">pprStms :: [a] -&gt; Doc
</span><a href="#local-6989586621679164322"><span class="hs-identifier hs-var hs-var">pprStms</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-191"></span><span>    </span><span class="annot"><a href="#local-6989586621679164322"><span class="hs-identifier hs-var">pprStms</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621679164317"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164317"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164317"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-192"></span><span>    </span><span class="annot"><a href="#local-6989586621679164322"><span class="hs-identifier hs-var">pprStms</span></a></span><span> </span><span id="local-6989586621679164316"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164316"><span class="hs-identifier hs-var">ss</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[a] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#semiSep"><span class="hs-identifier hs-var">semiSep</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164316"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-193"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164315"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164315"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#MDoE"><span class="hs-identifier hs-type">MDoE</span></a></span><span> </span><span id="local-6989586621679164313"><span class="annot"><span class="annottext">Maybe ModName
</span><a href="#local-6989586621679164313"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span id="local-6989586621679164312"><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164312"><span class="hs-identifier hs-var">ss_</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164315"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-194"></span><span>    </span><span class="annot"><span class="annottext">Maybe ModName -&gt; Doc
</span><a href="#local-6989586621679164311"><span class="hs-identifier hs-var">pprQualifier</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe ModName
</span><a href="#local-6989586621679164313"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;mdo&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="#local-6989586621679164310"><span class="hs-identifier hs-var">pprStms</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164312"><span class="hs-identifier hs-var">ss_</span></a></span><span>
</span><span id="line-195"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-196"></span><span>    </span><span id="local-6989586621679164311"><span class="annot"><span class="annottext">pprQualifier :: Maybe ModName -&gt; Doc
</span><a href="#local-6989586621679164311"><span class="hs-identifier hs-var hs-var">pprQualifier</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe ModName
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-197"></span><span>    </span><span class="annot"><a href="#local-6989586621679164311"><span class="hs-identifier hs-var">pprQualifier</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164309"><span class="annot"><span class="annottext">ModName
</span><a href="#local-6989586621679164309"><span class="hs-identifier hs-var">modName</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModName -&gt; String
</span><a href="Language.Haskell.TH.Syntax.html#modString"><span class="hs-identifier hs-var">modString</span></a></span><span> </span><span class="annot"><span class="annottext">ModName
</span><a href="#local-6989586621679164309"><span class="hs-identifier hs-var">modName</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'.'</span></span><span>
</span><span id="line-198"></span><span>    </span><span id="local-6989586621679164310"><span class="annot"><span class="annottext">pprStms :: [a] -&gt; Doc
</span><a href="#local-6989586621679164310"><span class="hs-identifier hs-var hs-var">pprStms</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-199"></span><span>    </span><span class="annot"><a href="#local-6989586621679164310"><span class="hs-identifier hs-var">pprStms</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621679164305"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164305"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679164305"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-200"></span><span>    </span><span class="annot"><a href="#local-6989586621679164310"><span class="hs-identifier hs-var">pprStms</span></a></span><span> </span><span id="local-6989586621679164304"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164304"><span class="hs-identifier hs-var">ss</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[a] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#semiSep"><span class="hs-identifier hs-var">semiSep</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679164304"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-201"></span><span>
</span><span id="line-202"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#CompE"><span class="hs-identifier hs-type">CompE</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;&lt;Empty CompExp&gt;&gt;&quot;</span></span><span>
</span><span id="line-203"></span><span class="hs-comment">-- This will probably break with fixity declarations - would need a ';'</span><span>
</span><span id="line-204"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#CompE"><span class="hs-identifier hs-type">CompE</span></a></span><span> </span><span id="local-6989586621679164302"><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164302"><span class="hs-identifier hs-var">ss</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-205"></span><span>    </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">[Stmt] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164301"><span class="hs-identifier hs-var">ss'</span></a></span><span>
</span><span id="line-206"></span><span>       </span><span class="hs-comment">-- If there are no statements in a list comprehension besides the last</span><span>
</span><span id="line-207"></span><span>       </span><span class="hs-comment">-- one, we simply treat it like a normal list.</span><span>
</span><span id="line-208"></span><span>       </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;[&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt
</span><a href="#local-6989586621679164300"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;]&quot;</span></span><span>
</span><span id="line-209"></span><span>       </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;[&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt
</span><a href="#local-6989586621679164300"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-210"></span><span>        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span>
</span><span id="line-211"></span><span>        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164301"><span class="hs-identifier hs-var">ss'</span></a></span><span>
</span><span id="line-212"></span><span>         </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;]&quot;</span></span><span>
</span><span id="line-213"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679164300"><span class="annot"><span class="annottext">s :: Stmt
</span><a href="#local-6989586621679164300"><span class="hs-identifier hs-var hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Stmt] -&gt; Stmt
forall a. [a] -&gt; a
</span><a href="../../base/src/GHC.List.html#last"><span class="hs-identifier hs-var">last</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164302"><span class="hs-identifier hs-var">ss</span></a></span><span>
</span><span id="line-214"></span><span>        </span><span id="local-6989586621679164301"><span class="annot"><span class="annottext">ss' :: [Stmt]
</span><a href="#local-6989586621679164301"><span class="hs-identifier hs-var hs-var">ss'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Stmt] -&gt; [Stmt]
forall a. [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#init"><span class="hs-identifier hs-var">init</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164302"><span class="hs-identifier hs-var">ss</span></a></span><span>
</span><span id="line-215"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ArithSeqE"><span class="hs-identifier hs-type">ArithSeqE</span></a></span><span> </span><span id="local-6989586621679164294"><span class="annot"><span class="annottext">Range
</span><a href="#local-6989586621679164294"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Range -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Range
</span><a href="#local-6989586621679164294"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-216"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ListE"><span class="hs-identifier hs-type">ListE</span></a></span><span> </span><span id="local-6989586621679164292"><span class="annot"><span class="annottext">[Exp]
</span><a href="#local-6989586621679164292"><span class="hs-identifier hs-var">es</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Exp] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[Exp]
</span><a href="#local-6989586621679164292"><span class="hs-identifier hs-var">es</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-217"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164290"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164290"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SigE"><span class="hs-identifier hs-type">SigE</span></a></span><span> </span><span id="local-6989586621679164288"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164288"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621679164287"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164287"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164290"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#sigPrec"><span class="hs-identifier hs-var">sigPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164288"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-218"></span><span>                                          </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164287"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-219"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecConE"><span class="hs-identifier hs-type">RecConE</span></a></span><span> </span><span id="local-6989586621679164285"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164285"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span id="local-6989586621679164284"><span class="annot"><span class="annottext">[FieldExp]
</span><a href="#local-6989586621679164284"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164285"><span class="hs-identifier hs-var">nm</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[FieldExp] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFields"><span class="hs-identifier hs-var">pprFields</span></a></span><span> </span><span class="annot"><span class="annottext">[FieldExp]
</span><a href="#local-6989586621679164284"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-220"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecUpdE"><span class="hs-identifier hs-type">RecUpdE</span></a></span><span> </span><span id="local-6989586621679164281"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164281"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621679164280"><span class="annot"><span class="annottext">[FieldExp]
</span><a href="#local-6989586621679164280"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164281"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[FieldExp] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFields"><span class="hs-identifier hs-var">pprFields</span></a></span><span> </span><span class="annot"><span class="annottext">[FieldExp]
</span><a href="#local-6989586621679164280"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-221"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span id="local-6989586621679164279"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164279"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#StaticE"><span class="hs-identifier hs-type">StaticE</span></a></span><span> </span><span id="local-6989586621679164277"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164277"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164279"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E%3D"><span class="hs-operator hs-var">&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-222"></span><span>                         </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;static&quot;</span></span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164277"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-223"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboundVarE"><span class="hs-identifier hs-type">UnboundVarE</span></a></span><span> </span><span id="local-6989586621679164276"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164276"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164276"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-224"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LabelE"><span class="hs-identifier hs-type">LabelE</span></a></span><span> </span><span id="local-6989586621679164274"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164274"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;#&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164274"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-225"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ImplicitParamVarE"><span class="hs-identifier hs-type">ImplicitParamVarE</span></a></span><span> </span><span id="local-6989586621679164272"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164272"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'?'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; String -&gt; String
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164272"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-226"></span><span>
</span><span id="line-227"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFields"><span class="hs-identifier hs-type">pprFields</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">,</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Exp"><span class="hs-identifier hs-type">Exp</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-228"></span><span id="pprFields"><span class="annot"><span class="annottext">pprFields :: [FieldExp] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFields"><span class="hs-identifier hs-var hs-var">pprFields</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; ([FieldExp] -&gt; [Doc]) -&gt; [FieldExp] -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; ([FieldExp] -&gt; [Doc]) -&gt; [FieldExp] -&gt; [Doc]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldExp -&gt; Doc) -&gt; [FieldExp] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621679164269"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164269"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679164268"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164268"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164269"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164268"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-229"></span><span>
</span><span id="line-230"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprMaybeExp"><span class="hs-identifier hs-type">pprMaybeExp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Precedence"><span class="hs-identifier hs-type">Precedence</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Exp"><span class="hs-identifier hs-type">Exp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-231"></span><span id="pprMaybeExp"><span class="annot"><span class="annottext">pprMaybeExp :: SumAlt -&gt; Maybe Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprMaybeExp"><span class="hs-identifier hs-var hs-var">pprMaybeExp</span></a></span></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Maybe Exp
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-232"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprMaybeExp"><span class="hs-identifier hs-var">pprMaybeExp</span></a></span><span> </span><span id="local-6989586621679164267"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164267"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164266"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164266"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164267"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164266"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-235"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164263"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Stmt"><span class="hs-identifier hs-type">Stmt</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-236"></span><span>    </span><span id="local-6989586621679164256"><span class="annot"><span class="annottext">ppr :: Stmt -&gt; Doc
</span><a href="#local-6989586621679164256"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#BindS"><span class="hs-identifier hs-type">BindS</span></a></span><span> </span><span id="local-6989586621679164254"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164254"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679164253"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164253"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164254"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;-&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164253"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-237"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LetS"><span class="hs-identifier hs-type">LetS</span></a></span><span> </span><span id="local-6989586621679164251"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164251"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;let&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Dec] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#semiSep"><span class="hs-identifier hs-var">semiSep</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164251"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-238"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#NoBindS"><span class="hs-identifier hs-type">NoBindS</span></a></span><span> </span><span id="local-6989586621679164249"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164249"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164249"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-239"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ParS"><span class="hs-identifier hs-type">ParS</span></a></span><span> </span><span id="local-6989586621679164247"><span class="annot"><span class="annottext">[[Stmt]]
</span><a href="#local-6989586621679164247"><span class="hs-identifier hs-var">sss</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span>
</span><span id="line-240"></span><span>                         </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">([Stmt] -&gt; Doc) -&gt; [[Stmt]] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[[Stmt]]
</span><a href="#local-6989586621679164247"><span class="hs-identifier hs-var">sss</span></a></span><span>
</span><span id="line-241"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecS"><span class="hs-identifier hs-type">RecS</span></a></span><span> </span><span id="local-6989586621679164245"><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164245"><span class="hs-identifier hs-var">ss</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rec&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Stmt] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#semiSep"><span class="hs-identifier hs-var">semiSep</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164245"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-242"></span><span>
</span><span id="line-243"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-244"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164242"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Match"><span class="hs-identifier hs-type">Match</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-245"></span><span>    </span><span id="local-6989586621679164241"><span class="annot"><span class="annottext">ppr :: Match -&gt; Doc
</span><a href="#local-6989586621679164241"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span id="local-6989586621679164239"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164239"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679164238"><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679164238"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span id="local-6989586621679164237"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164237"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprMatchPat"><span class="hs-identifier hs-var">pprMatchPat</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164239"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Body -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBody"><span class="hs-identifier hs-var">pprBody</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span><span> </span><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679164238"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-246"></span><span>                        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-var">where_clause</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164237"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-247"></span><span>
</span><span id="line-248"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprMatchPat"><span class="hs-identifier hs-type">pprMatchPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-249"></span><span class="hs-comment">-- Everything except pattern signatures bind more tightly than (-&gt;)</span><span>
</span><span id="line-250"></span><span id="pprMatchPat"><span class="annot"><span class="annottext">pprMatchPat :: Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprMatchPat"><span class="hs-identifier hs-var hs-var">pprMatchPat</span></a></span></span><span> </span><span id="local-6989586621679164233"><span class="annot"><span class="annottext">p :: Pat
</span><a href="#local-6989586621679164233"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SigP"><span class="hs-identifier hs-type">SigP</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164233"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-251"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprMatchPat"><span class="hs-identifier hs-var">pprMatchPat</span></a></span><span> </span><span id="local-6989586621679164231"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164231"><span class="hs-identifier hs-var">p</span></a></span></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164231"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-252"></span><span>
</span><span id="line-253"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-254"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprGuarded"><span class="hs-identifier hs-type">pprGuarded</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Guard"><span class="hs-identifier hs-type">Guard</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Exp"><span class="hs-identifier hs-type">Exp</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-255"></span><span id="pprGuarded"><span class="annot"><span class="annottext">pprGuarded :: Doc -&gt; (Guard, Exp) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprGuarded"><span class="hs-identifier hs-var hs-var">pprGuarded</span></a></span></span><span> </span><span id="local-6989586621679164230"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164230"><span class="hs-identifier hs-var">eqDoc</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679164229"><span class="annot"><span class="annottext">Guard
</span><a href="#local-6989586621679164229"><span class="hs-identifier hs-var">guard</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679164228"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164228"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Guard
</span><a href="#local-6989586621679164229"><span class="hs-identifier hs-var">guard</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-256"></span><span>  </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#NormalG"><span class="hs-identifier hs-type">NormalG</span></a></span><span> </span><span id="local-6989586621679164226"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164226"><span class="hs-identifier hs-var">guardExpr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164226"><span class="hs-identifier hs-var">guardExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164230"><span class="hs-identifier hs-var">eqDoc</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164228"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-257"></span><span>  </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatG"><span class="hs-identifier hs-type">PatG</span></a></span><span>    </span><span id="local-6989586621679164224"><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164224"><span class="hs-identifier hs-var">stmts</span></a></span></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Stmt -&gt; Doc) -&gt; [Stmt] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Stmt]
</span><a href="#local-6989586621679164224"><span class="hs-identifier hs-var">stmts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-258"></span><span>                         </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164230"><span class="hs-identifier hs-var">eqDoc</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164228"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-259"></span><span>
</span><span id="line-260"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-261"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprBody"><span class="hs-identifier hs-type">pprBody</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Body"><span class="hs-identifier hs-type">Body</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-262"></span><span id="pprBody"><span class="annot"><span class="annottext">pprBody :: Bool -&gt; Body -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBody"><span class="hs-identifier hs-var hs-var">pprBody</span></a></span></span><span> </span><span id="local-6989586621679164223"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164223"><span class="hs-identifier hs-var">eq</span></a></span></span><span> </span><span id="local-6989586621679164222"><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679164222"><span class="hs-identifier hs-var">body</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679164222"><span class="hs-identifier hs-var">body</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-263"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#GuardedB"><span class="hs-identifier hs-type">GuardedB</span></a></span><span> </span><span id="local-6989586621679164220"><span class="annot"><span class="annottext">[(Guard, Exp)]
</span><a href="#local-6989586621679164220"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">((Guard, Exp) -&gt; Doc) -&gt; [(Guard, Exp)] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; (Guard, Exp) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprGuarded"><span class="hs-identifier hs-var">pprGuarded</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164219"><span class="hs-identifier hs-var">eqDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(Guard, Exp)]
</span><a href="#local-6989586621679164220"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-264"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#NormalB"><span class="hs-identifier hs-type">NormalB</span></a></span><span>  </span><span id="local-6989586621679164217"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164217"><span class="hs-identifier hs-var">e</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164219"><span class="hs-identifier hs-var">eqDoc</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164217"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-265"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679164219"><span class="annot"><span class="annottext">eqDoc :: Doc
</span><a href="#local-6989586621679164219"><span class="hs-identifier hs-var hs-var">eqDoc</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164223"><span class="hs-identifier hs-var">eq</span></a></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span>
</span><span id="line-266"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span>
</span><span id="line-267"></span><span>
</span><span id="line-268"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-269"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164214"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Lit"><span class="hs-identifier hs-type">Lit</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-270"></span><span>  </span><span id="local-6989586621679164213"><span class="annot"><span class="annottext">ppr :: Lit -&gt; Doc
</span><a href="#local-6989586621679164213"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Lit -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span>
</span><span id="line-271"></span><span>
</span><span id="line-272"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-type">pprLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Precedence"><span class="hs-identifier hs-type">Precedence</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Lit"><span class="hs-identifier hs-type">Lit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-273"></span><span id="pprLit"><span class="annot"><span class="annottext">pprLit :: SumAlt -&gt; Lit -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var hs-var">pprLit</span></a></span></span><span> </span><span id="local-6989586621679164212"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164212"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#IntPrimL"><span class="hs-identifier hs-type">IntPrimL</span></a></span><span> </span><span id="local-6989586621679164210"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164210"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164212"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%26%26"><span class="hs-operator hs-var">&amp;&amp;</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164210"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Integer -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3C"><span class="hs-operator hs-var">&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span>
</span><span id="line-274"></span><span>                                    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164210"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span class="hs-special">)</span><span>
</span><span id="line-275"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#WordPrimL"><span class="hs-identifier hs-type">WordPrimL</span></a></span><span> </span><span id="local-6989586621679164205"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164205"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164205"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;##&quot;</span></span><span>
</span><span id="line-276"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span id="local-6989586621679164204"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164204"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FloatPrimL"><span class="hs-identifier hs-type">FloatPrimL</span></a></span><span> </span><span id="local-6989586621679164202"><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164202"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164204"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%26%26"><span class="hs-operator hs-var">&amp;&amp;</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164202"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Rational -&gt; Rational -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3C"><span class="hs-operator hs-var">&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span>
</span><span id="line-277"></span><span>                                    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Float -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#float"><span class="hs-identifier hs-var">float</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rational -&gt; Float
forall a. Fractional a =&gt; Rational -&gt; a
</span><a href="../../base/src/GHC.Real.html#fromRational"><span class="hs-identifier hs-var">fromRational</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164202"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span class="hs-special">)</span><span>
</span><span id="line-278"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span id="local-6989586621679164200"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164200"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DoublePrimL"><span class="hs-identifier hs-type">DoublePrimL</span></a></span><span> </span><span id="local-6989586621679164198"><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164198"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164200"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%26%26"><span class="hs-operator hs-var">&amp;&amp;</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164198"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Rational -&gt; Rational -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3C"><span class="hs-operator hs-var">&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span>
</span><span id="line-279"></span><span>                                    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Double -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#double"><span class="hs-identifier hs-var">double</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rational -&gt; Double
forall a. Fractional a =&gt; Rational -&gt; a
</span><a href="../../base/src/GHC.Real.html#fromRational"><span class="hs-identifier hs-var">fromRational</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164198"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;##&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-280"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span id="local-6989586621679164196"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164196"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#IntegerL"><span class="hs-identifier hs-type">IntegerL</span></a></span><span> </span><span id="local-6989586621679164194"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164194"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164196"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%26%26"><span class="hs-operator hs-var">&amp;&amp;</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164194"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Integer -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3C"><span class="hs-operator hs-var">&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679164194"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-281"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#CharL"><span class="hs-identifier hs-type">CharL</span></a></span><span> </span><span id="local-6989586621679164192"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679164192"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679164192"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-282"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#CharPrimL"><span class="hs-identifier hs-type">CharPrimL</span></a></span><span> </span><span id="local-6989586621679164189"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679164189"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679164189"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span>
</span><span id="line-283"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#StringL"><span class="hs-identifier hs-type">StringL</span></a></span><span> </span><span id="local-6989586621679164187"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164187"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164187"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-284"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#StringPrimL"><span class="hs-identifier hs-type">StringPrimL</span></a></span><span> </span><span id="local-6989586621679164184"><span class="annot"><span class="annottext">[Word8]
</span><a href="#local-6989586621679164184"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Word8] -&gt; String
</span><a href="Language.Haskell.TH.Ppr.html#bytesToString"><span class="hs-identifier hs-var">bytesToString</span></a></span><span> </span><span class="annot"><span class="annottext">[Word8]
</span><a href="#local-6989586621679164184"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span>
</span><span id="line-285"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#BytesPrimL"><span class="hs-identifier hs-type">BytesPrimL</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;binary data&gt;&quot;</span></span><span>
</span><span id="line-286"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span id="local-6989586621679164181"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164181"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RationalL"><span class="hs-identifier hs-type">RationalL</span></a></span><span> </span><span id="local-6989586621679164179"><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164179"><span class="hs-identifier hs-var">rat</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164181"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-287"></span><span>                           </span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rational -&gt; Integer
forall a. Ratio a -&gt; a
</span><a href="../../base/src/GHC.Real.html#numerator"><span class="hs-identifier hs-var">numerator</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164179"><span class="hs-identifier hs-var">rat</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'/'</span></span><span>
</span><span id="line-288"></span><span>                              </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rational -&gt; Integer
forall a. Ratio a -&gt; a
</span><a href="../../base/src/GHC.Real.html#denominator"><span class="hs-identifier hs-var">denominator</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621679164179"><span class="hs-identifier hs-var">rat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-289"></span><span>
</span><span id="line-290"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#bytesToString"><span class="hs-identifier hs-type">bytesToString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-291"></span><span id="bytesToString"><span class="annot"><span class="annottext">bytesToString :: [Word8] -&gt; String
</span><a href="Language.Haskell.TH.Ppr.html#bytesToString"><span class="hs-identifier hs-var hs-var">bytesToString</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Word8 -&gt; Char) -&gt; [Word8] -&gt; String
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Char
</span><a href="../../base/src/GHC.Char.html#chr"><span class="hs-identifier hs-var">chr</span></a></span><span> </span><span class="annot"><span class="annottext">(SumAlt -&gt; Char) -&gt; (Word8 -&gt; SumAlt) -&gt; Word8 -&gt; Char
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SumAlt
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-292"></span><span>
</span><span id="line-293"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprString"><span class="hs-identifier hs-type">pprString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-294"></span><span class="hs-comment">-- Print newlines as newlines with Haskell string escape notation,</span><span>
</span><span id="line-295"></span><span class="hs-comment">-- not as '\n'.  For other non-printables use regular escape notation.</span><span>
</span><span id="line-296"></span><span id="pprString"><span class="annot"><span class="annottext">pprString :: String -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprString"><span class="hs-identifier hs-var hs-var">pprString</span></a></span></span><span> </span><span id="local-6989586621679164178"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164178"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; [String] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; [String]
</span><a href="../../base/src/GHC.Show.html#showMultiLineString"><span class="hs-identifier hs-var">showMultiLineString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679164178"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-297"></span><span>
</span><span id="line-298"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-299"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164175"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-300"></span><span>    </span><span id="local-6989586621679164174"><span class="annot"><span class="annottext">ppr :: Pat -&gt; Doc
</span><a href="#local-6989586621679164174"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span>
</span><span id="line-301"></span><span>
</span><span id="line-302"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-type">pprPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Precedence"><span class="hs-identifier hs-type">Precedence</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-303"></span><span id="pprPat"><span class="annot"><span class="annottext">pprPat :: SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var hs-var">pprPat</span></a></span></span><span> </span><span id="local-6989586621679164173"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164173"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LitP"><span class="hs-identifier hs-type">LitP</span></a></span><span> </span><span id="local-6989586621679164171"><span class="annot"><span class="annottext">Lit
</span><a href="#local-6989586621679164171"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Lit -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprLit"><span class="hs-identifier hs-var">pprLit</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164173"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Lit
</span><a href="#local-6989586621679164171"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-304"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#VarP"><span class="hs-identifier hs-type">VarP</span></a></span><span> </span><span id="local-6989586621679164169"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164169"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164169"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-305"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164168"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164168"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupP"><span class="hs-identifier hs-type">TupP</span></a></span><span> </span><span id="local-6989586621679164166"><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164166"><span class="hs-identifier hs-var">ps</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-306"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Pat
</span><span class="hs-identifier">_</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164166"><span class="hs-identifier hs-var">ps</span></a></span><span>
</span><span id="line-307"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164168"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; [Pat] -&gt; Pat
</span><a href="Language.Haskell.TH.Syntax.html#ConP"><span class="hs-identifier hs-var">ConP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Name
</span><a href="Language.Haskell.TH.Syntax.html#tupleDataName"><span class="hs-identifier hs-var">tupleDataName</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164166"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-308"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-309"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Pat] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164166"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-310"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboxedTupP"><span class="hs-identifier hs-type">UnboxedTupP</span></a></span><span> </span><span id="local-6989586621679164163"><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164163"><span class="hs-identifier hs-var">ps</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#hashParens"><span class="hs-identifier hs-var">hashParens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Pat] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164163"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-311"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboxedSumP"><span class="hs-identifier hs-type">UnboxedSumP</span></a></span><span> </span><span id="local-6989586621679164161"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164161"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679164160"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164160"><span class="hs-identifier hs-var">alt</span></a></span></span><span> </span><span id="local-6989586621679164159"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164159"><span class="hs-identifier hs-var">arity</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SumAlt -&gt; SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#unboxedSumBars"><span class="hs-identifier hs-var">unboxedSumBars</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164161"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164160"><span class="hs-identifier hs-var">alt</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164159"><span class="hs-identifier hs-var">arity</span></a></span><span>
</span><span id="line-312"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164158"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164158"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ConP"><span class="hs-identifier hs-type">ConP</span></a></span><span> </span><span id="local-6989586621679164157"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164157"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621679164156"><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164156"><span class="hs-identifier hs-var">ps</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164158"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E%3D"><span class="hs-operator hs-var">&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164157"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-313"></span><span>                                              </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Pat -&gt; Doc) -&gt; [Pat] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164156"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-314"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ParensP"><span class="hs-identifier hs-type">ParensP</span></a></span><span> </span><span id="local-6989586621679164154"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164154"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164154"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-315"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164153"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164153"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UInfixP"><span class="hs-identifier hs-type">UInfixP</span></a></span><span> </span><span id="local-6989586621679164151"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164151"><span class="hs-identifier hs-var">p1</span></a></span></span><span> </span><span id="local-6989586621679164150"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164150"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679164149"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164149"><span class="hs-identifier hs-var">p2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-316"></span><span>                      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164153"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-var">unopPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-var">unopPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164151"><span class="hs-identifier hs-var">p1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-317"></span><span>                                                 </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164150"><span class="hs-identifier hs-var">n</span></a></span><span>   </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-318"></span><span>                                                 </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#unopPrec"><span class="hs-identifier hs-var">unopPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164149"><span class="hs-identifier hs-var">p2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-319"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164148"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164148"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixP"><span class="hs-identifier hs-type">InfixP</span></a></span><span> </span><span id="local-6989586621679164146"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164146"><span class="hs-identifier hs-var">p1</span></a></span></span><span> </span><span id="local-6989586621679164145"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164145"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679164144"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164144"><span class="hs-identifier hs-var">p2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-320"></span><span>                      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164148"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E%3D"><span class="hs-operator hs-var">&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164146"><span class="hs-identifier hs-var">p1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-321"></span><span>                                                </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164145"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-322"></span><span>                                                </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164144"><span class="hs-identifier hs-var">p2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-323"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164143"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164143"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TildeP"><span class="hs-identifier hs-type">TildeP</span></a></span><span> </span><span id="local-6989586621679164141"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164141"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164143"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'~'</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164141"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-324"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164140"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164140"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#BangP"><span class="hs-identifier hs-type">BangP</span></a></span><span> </span><span id="local-6989586621679164138"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164138"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164140"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'!'</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164138"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-325"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164137"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164137"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AsP"><span class="hs-identifier hs-type">AsP</span></a></span><span> </span><span id="local-6989586621679164135"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164135"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621679164134"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164134"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164137"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164135"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;@&quot;</span></span><span>
</span><span id="line-326"></span><span>                                                      </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164134"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-327"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="Language.Haskell.TH.Syntax.html#WildP"><span class="hs-identifier hs-var">WildP</span></a></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;_&quot;</span></span><span>
</span><span id="line-328"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecP"><span class="hs-identifier hs-type">RecP</span></a></span><span> </span><span id="local-6989586621679164131"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164131"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span id="local-6989586621679164130"><span class="annot"><span class="annottext">[FieldPat]
</span><a href="#local-6989586621679164130"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-329"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>     </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164131"><span class="hs-identifier hs-var">nm</span></a></span><span>
</span><span id="line-330"></span><span>            </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-331"></span><span>                        </span><span class="annot"><span class="annottext">(FieldPat -&gt; Doc) -&gt; [FieldPat] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621679164129"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164129"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679164128"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164128"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164129"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164128"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[FieldPat]
</span><a href="#local-6989586621679164130"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-332"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ListP"><span class="hs-identifier hs-type">ListP</span></a></span><span> </span><span id="local-6989586621679164126"><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164126"><span class="hs-identifier hs-var">ps</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Pat] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679164126"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-333"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span id="local-6989586621679164125"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164125"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SigP"><span class="hs-identifier hs-type">SigP</span></a></span><span> </span><span id="local-6989586621679164124"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164124"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679164123"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164123"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679164125"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164124"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164123"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-334"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ViewP"><span class="hs-identifier hs-type">ViewP</span></a></span><span> </span><span id="local-6989586621679164121"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164121"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621679164120"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164120"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Exp -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprExp"><span class="hs-identifier hs-var">pprExp</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679164121"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#noPrec"><span class="hs-identifier hs-var">noPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164120"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-335"></span><span>
</span><span id="line-336"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-337"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679164117"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Dec"><span class="hs-identifier hs-type">Dec</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-338"></span><span>    </span><span id="local-6989586621679164116"><span class="annot"><span class="annottext">ppr :: Dec -&gt; Doc
</span><a href="#local-6989586621679164116"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Dec -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span>
</span><span id="line-339"></span><span>
</span><span id="line-340"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-type">ppr_dec</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>     </span><span class="hs-comment">-- declaration on the toplevel?</span><span>
</span><span id="line-341"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Dec"><span class="hs-identifier hs-type">Dec</span></a></span><span>
</span><span id="line-342"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-343"></span><span id="ppr_dec"><span class="annot"><span class="annottext">ppr_dec :: Bool -&gt; Dec -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var hs-var">ppr_dec</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FunD"><span class="hs-identifier hs-type">FunD</span></a></span><span> </span><span id="local-6989586621679164113"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164113"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679164112"><span class="annot"><span class="annottext">[Clause]
</span><a href="#local-6989586621679164112"><span class="hs-identifier hs-var">cs</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Clause -&gt; Doc) -&gt; [Clause] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679164111"><span class="annot"><span class="annottext">Clause
</span><a href="#local-6989586621679164111"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164113"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Clause -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Clause
</span><a href="#local-6989586621679164111"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Clause]
</span><a href="#local-6989586621679164112"><span class="hs-identifier hs-var">cs</span></a></span><span>
</span><span id="line-344"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ValD"><span class="hs-identifier hs-type">ValD</span></a></span><span> </span><span id="local-6989586621679164109"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164109"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679164108"><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679164108"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621679164107"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164107"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679164109"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Body -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBody"><span class="hs-identifier hs-var">pprBody</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span> </span><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679164108"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-345"></span><span>                          </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-var">where_clause</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164107"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-346"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TySynD"><span class="hs-identifier hs-type">TySynD</span></a></span><span> </span><span id="local-6989586621679164105"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164105"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621679164104"><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164104"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621679164103"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164103"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-347"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Maybe Name -&gt; Doc -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_tySyn"><span class="hs-identifier hs-var">ppr_tySyn</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Maybe Name
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164105"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr () -&gt; Doc) -&gt; [TyVarBndr ()] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr () -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164104"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164103"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-348"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DataD"><span class="hs-identifier hs-type">DataD</span></a></span><span> </span><span id="local-6989586621679164100"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164100"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679164099"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164099"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621679164098"><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164098"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621679164097"><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164097"><span class="hs-identifier hs-var">ksig</span></a></span></span><span> </span><span id="local-6989586621679164096"><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679164096"><span class="hs-identifier hs-var">cs</span></a></span></span><span> </span><span id="local-6989586621679164095"><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164095"><span class="hs-identifier hs-var">decs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-349"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
-&gt; Cxt
-&gt; Maybe Name
-&gt; Doc
-&gt; Maybe Type
-&gt; [Con]
-&gt; [DerivClause]
-&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_data"><span class="hs-identifier hs-var">ppr_data</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164100"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Maybe Name
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164099"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr () -&gt; Doc) -&gt; [TyVarBndr ()] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr () -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164098"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164097"><span class="hs-identifier hs-var">ksig</span></a></span><span> </span><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679164096"><span class="hs-identifier hs-var">cs</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164095"><span class="hs-identifier hs-var">decs</span></a></span><span>
</span><span id="line-350"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#NewtypeD"><span class="hs-identifier hs-type">NewtypeD</span></a></span><span> </span><span id="local-6989586621679164092"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164092"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679164091"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164091"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621679164090"><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164090"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621679164089"><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164089"><span class="hs-identifier hs-var">ksig</span></a></span></span><span> </span><span id="local-6989586621679164088"><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679164088"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679164087"><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164087"><span class="hs-identifier hs-var">decs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-351"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
-&gt; Cxt
-&gt; Maybe Name
-&gt; Doc
-&gt; Maybe Type
-&gt; Con
-&gt; [DerivClause]
-&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_newtype"><span class="hs-identifier hs-var">ppr_newtype</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164092"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Maybe Name
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164091"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr () -&gt; Doc) -&gt; [TyVarBndr ()] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr () -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164090"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164089"><span class="hs-identifier hs-var">ksig</span></a></span><span> </span><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679164088"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164087"><span class="hs-identifier hs-var">decs</span></a></span><span>
</span><span id="line-352"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ClassD"><span class="hs-identifier hs-type">ClassD</span></a></span><span> </span><span id="local-6989586621679164084"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164084"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679164083"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164083"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679164082"><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164082"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621679164081"><span class="annot"><span class="annottext">[FunDep]
</span><a href="#local-6989586621679164081"><span class="hs-identifier hs-var">fds</span></a></span></span><span> </span><span id="local-6989586621679164080"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164080"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-353"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;class&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164084"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164083"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr () -&gt; Doc) -&gt; [TyVarBndr ()] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr () -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164082"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[FunDep] -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[FunDep]
</span><a href="#local-6989586621679164081"><span class="hs-identifier hs-var">fds</span></a></span><span>
</span><span id="line-354"></span><span>    </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-var">where_clause</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164080"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-355"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InstanceD"><span class="hs-identifier hs-type">InstanceD</span></a></span><span> </span><span id="local-6989586621679164077"><span class="annot"><span class="annottext">Maybe Overlap
</span><a href="#local-6989586621679164077"><span class="hs-identifier hs-var">o</span></a></span></span><span> </span><span id="local-6989586621679164076"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164076"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679164075"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164075"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span id="local-6989586621679164074"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164074"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-356"></span><span>        </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; (Overlap -&gt; Doc) -&gt; Maybe Overlap -&gt; Doc
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="annot"><span class="annottext">Overlap -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_overlap"><span class="hs-identifier hs-var">ppr_overlap</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Overlap
</span><a href="#local-6989586621679164077"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164076"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164075"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-357"></span><span>                                  </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-var">where_clause</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679164074"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-358"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SigD"><span class="hs-identifier hs-type">SigD</span></a></span><span> </span><span id="local-6989586621679164070"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164070"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679164069"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164069"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164070"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164069"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-359"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#KiSigD"><span class="hs-identifier hs-type">KiSigD</span></a></span><span> </span><span id="local-6989586621679164067"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164067"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679164066"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164066"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164067"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164066"><span class="hs-identifier hs-var">k</span></a></span><span>
</span><span id="line-360"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForeignD"><span class="hs-identifier hs-type">ForeignD</span></a></span><span> </span><span id="local-6989586621679164064"><span class="annot"><span class="annottext">Foreign
</span><a href="#local-6989586621679164064"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Foreign -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Foreign
</span><a href="#local-6989586621679164064"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-361"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixD"><span class="hs-identifier hs-type">InfixD</span></a></span><span> </span><span id="local-6989586621679164062"><span class="annot"><span class="annottext">Fixity
</span><a href="#local-6989586621679164062"><span class="hs-identifier hs-var">fx</span></a></span></span><span> </span><span id="local-6989586621679164061"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164061"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Fixity -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFixity"><span class="hs-identifier hs-var">pprFixity</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164061"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity
</span><a href="#local-6989586621679164062"><span class="hs-identifier hs-var">fx</span></a></span><span>
</span><span id="line-362"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PragmaD"><span class="hs-identifier hs-type">PragmaD</span></a></span><span> </span><span id="local-6989586621679164059"><span class="annot"><span class="annottext">Pragma
</span><a href="#local-6989586621679164059"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pragma -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pragma
</span><a href="#local-6989586621679164059"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-363"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span id="local-6989586621679164058"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164058"><span class="hs-identifier hs-var">isTop</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DataFamilyD"><span class="hs-identifier hs-type">DataFamilyD</span></a></span><span> </span><span id="local-6989586621679164056"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164056"><span class="hs-identifier hs-var">tc</span></a></span></span><span> </span><span id="local-6989586621679164055"><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164055"><span class="hs-identifier hs-var">tvs</span></a></span></span><span> </span><span id="local-6989586621679164054"><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164054"><span class="hs-identifier hs-var">kind</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-364"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;data&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164053"><span class="hs-identifier hs-var">maybeFamily</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164056"><span class="hs-identifier hs-var">tc</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr () -&gt; Doc) -&gt; [TyVarBndr ()] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr () -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679164055"><span class="hs-identifier hs-var">tvs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164052"><span class="hs-identifier hs-var">maybeKind</span></a></span><span>
</span><span id="line-365"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-366"></span><span>    </span><span id="local-6989586621679164053"><span class="annot"><span class="annottext">maybeFamily :: Doc
</span><a href="#local-6989586621679164053"><span class="hs-identifier hs-var hs-var">maybeFamily</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164058"><span class="hs-identifier hs-var">isTop</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;family&quot;</span></span><span>
</span><span id="line-367"></span><span>                </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-368"></span><span>    </span><span id="local-6989586621679164052"><span class="annot"><span class="annottext">maybeKind :: Doc
</span><a href="#local-6989586621679164052"><span class="hs-identifier hs-var hs-var">maybeKind</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679164050"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164050"><span class="hs-identifier hs-var">k'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164054"><span class="hs-identifier hs-var">kind</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164050"><span class="hs-identifier hs-var">k'</span></a></span><span>
</span><span id="line-369"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-370"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span id="local-6989586621679164049"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164049"><span class="hs-identifier hs-var">isTop</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DataInstD"><span class="hs-identifier hs-type">DataInstD</span></a></span><span> </span><span id="local-6989586621679164047"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164047"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679164046"><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164046"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span> </span><span id="local-6989586621679164045"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164045"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679164044"><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164044"><span class="hs-identifier hs-var">ksig</span></a></span></span><span> </span><span id="local-6989586621679164043"><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679164043"><span class="hs-identifier hs-var">cs</span></a></span></span><span> </span><span id="local-6989586621679164042"><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164042"><span class="hs-identifier hs-var">decs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-371"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
-&gt; Cxt
-&gt; Maybe Name
-&gt; Doc
-&gt; Maybe Type
-&gt; [Con]
-&gt; [DerivClause]
-&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_data"><span class="hs-identifier hs-var">ppr_data</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164041"><span class="hs-identifier hs-var">maybeInst</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()] -&gt; Doc
forall flag. PprFlag flag =&gt; Maybe [TyVarBndr flag] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_bndrs"><span class="hs-identifier hs-var">ppr_bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164046"><span class="hs-identifier hs-var">bndrs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-372"></span><span>             </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164047"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Name
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164045"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164044"><span class="hs-identifier hs-var">ksig</span></a></span><span> </span><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679164043"><span class="hs-identifier hs-var">cs</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164042"><span class="hs-identifier hs-var">decs</span></a></span><span>
</span><span id="line-373"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-374"></span><span>    </span><span id="local-6989586621679164041"><span class="annot"><span class="annottext">maybeInst :: Doc
</span><a href="#local-6989586621679164041"><span class="hs-identifier hs-var hs-var">maybeInst</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164049"><span class="hs-identifier hs-var">isTop</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance&quot;</span></span><span>
</span><span id="line-375"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-376"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span id="local-6989586621679164039"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164039"><span class="hs-identifier hs-var">isTop</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#NewtypeInstD"><span class="hs-identifier hs-type">NewtypeInstD</span></a></span><span> </span><span id="local-6989586621679164037"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164037"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679164036"><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164036"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span> </span><span id="local-6989586621679164035"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164035"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679164034"><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164034"><span class="hs-identifier hs-var">ksig</span></a></span></span><span> </span><span id="local-6989586621679164033"><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679164033"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679164032"><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164032"><span class="hs-identifier hs-var">decs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-377"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
-&gt; Cxt
-&gt; Maybe Name
-&gt; Doc
-&gt; Maybe Type
-&gt; Con
-&gt; [DerivClause]
-&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_newtype"><span class="hs-identifier hs-var">ppr_newtype</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164031"><span class="hs-identifier hs-var">maybeInst</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()] -&gt; Doc
forall flag. PprFlag flag =&gt; Maybe [TyVarBndr flag] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_bndrs"><span class="hs-identifier hs-var">ppr_bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164036"><span class="hs-identifier hs-var">bndrs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-378"></span><span>                </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164037"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Name
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164035"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679164034"><span class="hs-identifier hs-var">ksig</span></a></span><span> </span><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679164033"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679164032"><span class="hs-identifier hs-var">decs</span></a></span><span>
</span><span id="line-379"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-380"></span><span>    </span><span id="local-6989586621679164031"><span class="annot"><span class="annottext">maybeInst :: Doc
</span><a href="#local-6989586621679164031"><span class="hs-identifier hs-var hs-var">maybeInst</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164039"><span class="hs-identifier hs-var">isTop</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance&quot;</span></span><span>
</span><span id="line-381"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-382"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span id="local-6989586621679164030"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164030"><span class="hs-identifier hs-var">isTop</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TySynInstD"><span class="hs-identifier hs-type">TySynInstD</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TySynEqn"><span class="hs-identifier hs-type">TySynEqn</span></a></span><span> </span><span id="local-6989586621679164027"><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164027"><span class="hs-identifier hs-var">mb_bndrs</span></a></span></span><span> </span><span id="local-6989586621679164026"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164026"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679164025"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164025"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-383"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Maybe Name -&gt; Doc -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_tySyn"><span class="hs-identifier hs-var">ppr_tySyn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164024"><span class="hs-identifier hs-var">maybeInst</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()] -&gt; Doc
forall flag. PprFlag flag =&gt; Maybe [TyVarBndr flag] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_bndrs"><span class="hs-identifier hs-var">ppr_bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164027"><span class="hs-identifier hs-var">mb_bndrs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-384"></span><span>              </span><span class="annot"><span class="annottext">Maybe Name
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164026"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164025"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-385"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-386"></span><span>    </span><span id="local-6989586621679164024"><span class="annot"><span class="annottext">maybeInst :: Doc
</span><a href="#local-6989586621679164024"><span class="hs-identifier hs-var hs-var">maybeInst</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164030"><span class="hs-identifier hs-var">isTop</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance&quot;</span></span><span>
</span><span id="line-387"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-388"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span id="local-6989586621679164023"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164023"><span class="hs-identifier hs-var">isTop</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#OpenTypeFamilyD"><span class="hs-identifier hs-type">OpenTypeFamilyD</span></a></span><span> </span><span id="local-6989586621679164021"><span class="annot"><span class="annottext">TypeFamilyHead
</span><a href="#local-6989586621679164021"><span class="hs-identifier hs-var">tfhead</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-389"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679164020"><span class="hs-identifier hs-var">maybeFamily</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">TypeFamilyHead -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_tf_head"><span class="hs-identifier hs-var">ppr_tf_head</span></a></span><span> </span><span class="annot"><span class="annottext">TypeFamilyHead
</span><a href="#local-6989586621679164021"><span class="hs-identifier hs-var">tfhead</span></a></span><span>
</span><span id="line-390"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-391"></span><span>    </span><span id="local-6989586621679164020"><span class="annot"><span class="annottext">maybeFamily :: Doc
</span><a href="#local-6989586621679164020"><span class="hs-identifier hs-var hs-var">maybeFamily</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679164023"><span class="hs-identifier hs-var">isTop</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;family&quot;</span></span><span>
</span><span id="line-392"></span><span>                </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-393"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ClosedTypeFamilyD"><span class="hs-identifier hs-type">ClosedTypeFamilyD</span></a></span><span> </span><span id="local-6989586621679164017"><span class="annot"><span class="annottext">TypeFamilyHead
</span><a href="#local-6989586621679164017"><span class="hs-identifier hs-var">tfhead</span></a></span></span><span> </span><span id="local-6989586621679164016"><span class="annot"><span class="annottext">[TySynEqn]
</span><a href="#local-6989586621679164016"><span class="hs-identifier hs-var">eqns</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-394"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type family&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">TypeFamilyHead -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_tf_head"><span class="hs-identifier hs-var">ppr_tf_head</span></a></span><span> </span><span class="annot"><span class="annottext">TypeFamilyHead
</span><a href="#local-6989586621679164017"><span class="hs-identifier hs-var">tfhead</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;where&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-395"></span><span>      </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TySynEqn -&gt; Doc) -&gt; [TySynEqn] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TySynEqn -&gt; Doc
</span><a href="#local-6989586621679164014"><span class="hs-identifier hs-var">ppr_eqn</span></a></span><span> </span><span class="annot"><span class="annottext">[TySynEqn]
</span><a href="#local-6989586621679164016"><span class="hs-identifier hs-var">eqns</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-396"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-397"></span><span>    </span><span id="local-6989586621679164014"><span class="annot"><span class="annottext">ppr_eqn :: TySynEqn -&gt; Doc
</span><a href="#local-6989586621679164014"><span class="hs-identifier hs-var hs-var">ppr_eqn</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TySynEqn"><span class="hs-identifier hs-type">TySynEqn</span></a></span><span> </span><span id="local-6989586621679164010"><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164010"><span class="hs-identifier hs-var">mb_bndrs</span></a></span></span><span> </span><span id="local-6989586621679164009"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164009"><span class="hs-identifier hs-var">lhs</span></a></span></span><span> </span><span id="local-6989586621679164008"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164008"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-398"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()] -&gt; Doc
forall flag. PprFlag flag =&gt; Maybe [TyVarBndr flag] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_bndrs"><span class="hs-identifier hs-var">ppr_bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679164010"><span class="hs-identifier hs-var">mb_bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164009"><span class="hs-identifier hs-var">lhs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164008"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-399"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RoleAnnotD"><span class="hs-identifier hs-type">RoleAnnotD</span></a></span><span> </span><span id="local-6989586621679164006"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164006"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621679164005"><span class="annot"><span class="annottext">[Role]
</span><a href="#local-6989586621679164005"><span class="hs-identifier hs-var">roles</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-400"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type role&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679164006"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Role -&gt; Doc) -&gt; [Role] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Role -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Role]
</span><a href="#local-6989586621679164005"><span class="hs-identifier hs-var">roles</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-401"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#StandaloneDerivD"><span class="hs-identifier hs-type">StandaloneDerivD</span></a></span><span> </span><span id="local-6989586621679164003"><span class="annot"><span class="annottext">Maybe DerivStrategy
</span><a href="#local-6989586621679164003"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span id="local-6989586621679164002"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164002"><span class="hs-identifier hs-var">cxt</span></a></span></span><span> </span><span id="local-6989586621679164001"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164001"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-402"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;deriving&quot;</span></span><span>
</span><span id="line-403"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; (DerivStrategy -&gt; Doc) -&gt; Maybe DerivStrategy -&gt; Doc
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="annot"><span class="annottext">DerivStrategy -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_strategy"><span class="hs-identifier hs-var">ppr_deriv_strategy</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe DerivStrategy
</span><a href="#local-6989586621679164003"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-404"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance&quot;</span></span><span>
</span><span id="line-405"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679164002"><span class="hs-identifier hs-var">cxt</span></a></span><span>
</span><span id="line-406"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679164001"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-407"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DefaultSigD"><span class="hs-identifier hs-type">DefaultSigD</span></a></span><span> </span><span id="local-6989586621679163998"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163998"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163997"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163997"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-408"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;default&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163998"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163997"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-409"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatSynD"><span class="hs-identifier hs-type">PatSynD</span></a></span><span> </span><span id="local-6989586621679163995"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163995"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621679163994"><span class="annot"><span class="annottext">PatSynArgs
</span><a href="#local-6989586621679163994"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621679163993"><span class="annot"><span class="annottext">PatSynDir
</span><a href="#local-6989586621679163993"><span class="hs-identifier hs-var">dir</span></a></span></span><span> </span><span id="local-6989586621679163992"><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679163992"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-410"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pattern&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163991"><span class="hs-identifier hs-var">pprNameArgs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PatSynDir -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">PatSynDir
</span><a href="#local-6989586621679163993"><span class="hs-identifier hs-var">dir</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163990"><span class="hs-identifier hs-var">pprPatRHS</span></a></span><span>
</span><span id="line-411"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-412"></span><span>    </span><span id="local-6989586621679163991"><span class="annot"><span class="annottext">pprNameArgs :: Doc
</span><a href="#local-6989586621679163991"><span class="hs-identifier hs-var hs-var">pprNameArgs</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixPatSyn"><span class="hs-identifier hs-type">InfixPatSyn</span></a></span><span> </span><span id="local-6989586621679163983"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163983"><span class="hs-identifier hs-var">a1</span></a></span></span><span> </span><span id="local-6989586621679163982"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163982"><span class="hs-identifier hs-var">a2</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PatSynArgs
</span><a href="#local-6989586621679163994"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163983"><span class="hs-identifier hs-var">a1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163995"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163982"><span class="hs-identifier hs-var">a2</span></a></span><span>
</span><span id="line-413"></span><span>                </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                 </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163995"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PatSynArgs -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">PatSynArgs
</span><a href="#local-6989586621679163994"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-414"></span><span>    </span><span id="local-6989586621679163990"><span class="annot"><span class="annottext">pprPatRHS :: Doc
</span><a href="#local-6989586621679163990"><span class="hs-identifier hs-var hs-var">pprPatRHS</span></a></span></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ExplBidir"><span class="hs-identifier hs-type">ExplBidir</span></a></span><span> </span><span id="local-6989586621679163975"><span class="annot"><span class="annottext">[Clause]
</span><a href="#local-6989586621679163975"><span class="hs-identifier hs-var">cls</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PatSynDir
</span><a href="#local-6989586621679163993"><span class="hs-identifier hs-var">dir</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679163992"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;where&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-415"></span><span>                                           </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163995"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Clause] -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Clause]
</span><a href="#local-6989586621679163975"><span class="hs-identifier hs-var">cls</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-416"></span><span>                </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Pat
</span><a href="#local-6989586621679163992"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-417"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatSynSigD"><span class="hs-identifier hs-type">PatSynSigD</span></a></span><span> </span><span id="local-6989586621679163973"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163973"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621679163972"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163972"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-418"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPatSynSig"><span class="hs-identifier hs-var">pprPatSynSig</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163973"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163972"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-419"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ImplicitParamBindD"><span class="hs-identifier hs-type">ImplicitParamBindD</span></a></span><span> </span><span id="local-6989586621679163970"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163970"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163969"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163969"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-420"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'?'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; String -&gt; String
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163970"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163969"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-421"></span><span>
</span><span id="line-422"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_strategy"><span class="hs-identifier hs-type">ppr_deriv_strategy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DerivStrategy"><span class="hs-identifier hs-type">DerivStrategy</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-423"></span><span id="ppr_deriv_strategy"><span class="annot"><span class="annottext">ppr_deriv_strategy :: DerivStrategy -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_strategy"><span class="hs-identifier hs-var hs-var">ppr_deriv_strategy</span></a></span></span><span> </span><span id="local-6989586621679163968"><span class="annot"><span class="annottext">DerivStrategy
</span><a href="#local-6989586621679163968"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-424"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">DerivStrategy
</span><a href="#local-6989586621679163968"><span class="hs-identifier hs-var">ds</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-425"></span><span>    </span><span class="annot"><span class="annottext">DerivStrategy
</span><a href="Language.Haskell.TH.Syntax.html#StockStrategy"><span class="hs-identifier hs-var">StockStrategy</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;stock&quot;</span></span><span>
</span><span id="line-426"></span><span>    </span><span class="annot"><span class="annottext">DerivStrategy
</span><a href="Language.Haskell.TH.Syntax.html#AnyclassStrategy"><span class="hs-identifier hs-var">AnyclassStrategy</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;anyclass&quot;</span></span><span>
</span><span id="line-427"></span><span>    </span><span class="annot"><span class="annottext">DerivStrategy
</span><a href="Language.Haskell.TH.Syntax.html#NewtypeStrategy"><span class="hs-identifier hs-var">NewtypeStrategy</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;newtype&quot;</span></span><span>
</span><span id="line-428"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ViaStrategy"><span class="hs-identifier hs-type">ViaStrategy</span></a></span><span> </span><span id="local-6989586621679163963"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163963"><span class="hs-identifier hs-var">ty</span></a></span></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;via&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163963"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-429"></span><span>
</span><span id="line-430"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_overlap"><span class="hs-identifier hs-type">ppr_overlap</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Overlap"><span class="hs-identifier hs-type">Overlap</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-431"></span><span id="ppr_overlap"><span class="annot"><span class="annottext">ppr_overlap :: Overlap -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_overlap"><span class="hs-identifier hs-var hs-var">ppr_overlap</span></a></span></span><span> </span><span id="local-6989586621679163962"><span class="annot"><span class="annottext">Overlap
</span><a href="#local-6989586621679163962"><span class="hs-identifier hs-var">o</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; String -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-432"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Overlap
</span><a href="#local-6989586621679163962"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-433"></span><span>    </span><span class="annot"><span class="annottext">Overlap
</span><a href="Language.Haskell.TH.Syntax.html#Overlaps"><span class="hs-identifier hs-var">Overlaps</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# OVERLAPS #-}&quot;</span></span><span>
</span><span id="line-434"></span><span>    </span><span class="annot"><span class="annottext">Overlap
</span><a href="Language.Haskell.TH.Syntax.html#Overlappable"><span class="hs-identifier hs-var">Overlappable</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# OVERLAPPABLE #-}&quot;</span></span><span>
</span><span id="line-435"></span><span>    </span><span class="annot"><span class="annottext">Overlap
</span><a href="Language.Haskell.TH.Syntax.html#Overlapping"><span class="hs-identifier hs-var">Overlapping</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# OVERLAPPING #-}&quot;</span></span><span>
</span><span id="line-436"></span><span>    </span><span class="annot"><span class="annottext">Overlap
</span><a href="Language.Haskell.TH.Syntax.html#Incoherent"><span class="hs-identifier hs-var">Incoherent</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# INCOHERENT #-}&quot;</span></span><span>
</span><span id="line-437"></span><span>
</span><span id="line-438"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_data"><span class="hs-identifier hs-type">ppr_data</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Cxt"><span class="hs-identifier hs-type">Cxt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Kind"><span class="hs-identifier hs-type">Kind</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Con"><span class="hs-identifier hs-type">Con</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DerivClause"><span class="hs-identifier hs-type">DerivClause</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-439"></span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-440"></span><span id="ppr_data"><span class="annot"><span class="annottext">ppr_data :: Doc
-&gt; Cxt
-&gt; Maybe Name
-&gt; Doc
-&gt; Maybe Type
-&gt; [Con]
-&gt; [DerivClause]
-&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_data"><span class="hs-identifier hs-var hs-var">ppr_data</span></a></span></span><span> </span><span id="local-6989586621679163961"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163961"><span class="hs-identifier hs-var">maybeInst</span></a></span></span><span> </span><span id="local-6989586621679163960"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163960"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679163959"><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163959"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621679163958"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163958"><span class="hs-identifier hs-var">argsDoc</span></a></span></span><span> </span><span id="local-6989586621679163957"><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679163957"><span class="hs-identifier hs-var">ksig</span></a></span></span><span> </span><span id="local-6989586621679163956"><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679163956"><span class="hs-identifier hs-var">cs</span></a></span></span><span> </span><span id="local-6989586621679163955"><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679163955"><span class="hs-identifier hs-var">decs</span></a></span></span><span>
</span><span id="line-441"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;data&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163961"><span class="hs-identifier hs-var">maybeInst</span></a></span><span>
</span><span id="line-442"></span><span>            </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163960"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-443"></span><span>            </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163959"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-444"></span><span>                 </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163954"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163954"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163954"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163958"><span class="hs-identifier hs-var">argsDoc</span></a></span><span>
</span><span id="line-445"></span><span>                 </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163958"><span class="hs-identifier hs-var">argsDoc</span></a></span><span>
</span><span id="line-446"></span><span>            </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163953"><span class="hs-identifier hs-var">ksigDoc</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163952"><span class="hs-identifier hs-var">maybeWhere</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-447"></span><span>         </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; [Doc]
</span><a href="#local-6989586621679163951"><span class="hs-identifier hs-var">pref</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Con -&gt; Doc) -&gt; [Con] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Con -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679163956"><span class="hs-identifier hs-var">cs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-448"></span><span>         </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">[DerivClause] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679163955"><span class="hs-identifier hs-var">decs</span></a></span><span>
</span><span id="line-449"></span><span>           </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-450"></span><span>           </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span>
</span><span id="line-451"></span><span>              </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(DerivClause -&gt; Doc) -&gt; [DerivClause] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">DerivClause -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_clause"><span class="hs-identifier hs-var">ppr_deriv_clause</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679163955"><span class="hs-identifier hs-var">decs</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-452"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-453"></span><span>    </span><span class="annot"><a href="#local-6989586621679163951"><span class="hs-identifier hs-type">pref</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-454"></span><span>    </span><span id="local-6989586621679163951"><span class="annot"><span class="annottext">pref :: [Doc] -&gt; [Doc]
</span><a href="#local-6989586621679163951"><span class="hs-identifier hs-var hs-var">pref</span></a></span></span><span> </span><span id="local-6989586621679163949"><span class="annot"><span class="annottext">[Doc]
</span><a href="#local-6989586621679163949"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679163948"><span class="hs-identifier hs-var">isGadtDecl</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc]
</span><a href="#local-6989586621679163949"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-455"></span><span>    </span><span class="annot"><a href="#local-6989586621679163951"><span class="hs-identifier hs-var">pref</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>      </span><span class="hs-comment">-- No constructors; can't happen in H98</span><span>
</span><span id="line-456"></span><span>    </span><span class="annot"><a href="#local-6989586621679163951"><span class="hs-identifier hs-var">pref</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163947"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163947"><span class="hs-identifier hs-var">d</span></a></span></span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-type">:</span></a></span><span id="local-6989586621679163946"><span class="annot"><span class="annottext">[Doc]
</span><a href="#local-6989586621679163946"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'='</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163947"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Doc]
</span><a href="#local-6989586621679163946"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-457"></span><span>
</span><span id="line-458"></span><span>    </span><span class="annot"><a href="#local-6989586621679163952"><span class="hs-identifier hs-type">maybeWhere</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-459"></span><span>    </span><span id="local-6989586621679163952"><span class="annot"><span class="annottext">maybeWhere :: Doc
</span><a href="#local-6989586621679163952"><span class="hs-identifier hs-var hs-var">maybeWhere</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679163948"><span class="hs-identifier hs-var">isGadtDecl</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;where&quot;</span></span><span>
</span><span id="line-460"></span><span>               </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-461"></span><span>
</span><span id="line-462"></span><span>    </span><span class="annot"><a href="#local-6989586621679163948"><span class="hs-identifier hs-type">isGadtDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-463"></span><span>    </span><span id="local-6989586621679163948"><span class="annot"><span class="annottext">isGadtDecl :: Bool
</span><a href="#local-6989586621679163948"><span class="hs-identifier hs-var hs-var">isGadtDecl</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#not"><span class="hs-identifier hs-var">not</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Con] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679163956"><span class="hs-identifier hs-var">cs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%26%26"><span class="hs-operator hs-var">&amp;&amp;</span></a></span><span> </span><span class="annot"><span class="annottext">(Con -&gt; Bool) -&gt; [Con] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#all"><span class="hs-identifier hs-var">all</span></a></span><span> </span><span class="annot"><span class="annottext">Con -&gt; Bool
</span><a href="#local-6989586621679163943"><span class="hs-identifier hs-var">isGadtCon</span></a></span><span> </span><span class="annot"><span class="annottext">[Con]
</span><a href="#local-6989586621679163956"><span class="hs-identifier hs-var">cs</span></a></span><span>
</span><span id="line-464"></span><span>        </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679163943"><span class="annot"><span class="annottext">isGadtCon :: Con -&gt; Bool
</span><a href="#local-6989586621679163943"><span class="hs-identifier hs-var hs-var">isGadtCon</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#GadtC"><span class="hs-identifier hs-type">GadtC</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">[BangType]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span>
</span><span id="line-465"></span><span>              </span><span class="annot"><a href="#local-6989586621679163943"><span class="hs-identifier hs-var">isGadtCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecGadtC"><span class="hs-identifier hs-type">RecGadtC</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">[VarBangType]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span>
</span><span id="line-466"></span><span>              </span><span class="annot"><a href="#local-6989586621679163943"><span class="hs-identifier hs-var">isGadtCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallC"><span class="hs-identifier hs-type">ForallC</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679163939"><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679163939"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Con -&gt; Bool
</span><a href="#local-6989586621679163943"><span class="hs-identifier hs-var">isGadtCon</span></a></span><span> </span><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679163939"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-467"></span><span>              </span><span class="annot"><a href="#local-6989586621679163943"><span class="hs-identifier hs-var">isGadtCon</span></a></span><span>  </span><span class="annot"><span class="annottext">Con
</span><span class="hs-identifier">_</span></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span><span>
</span><span id="line-468"></span><span>
</span><span id="line-469"></span><span>    </span><span id="local-6989586621679163953"><span class="annot"><span class="annottext">ksigDoc :: Doc
</span><a href="#local-6989586621679163953"><span class="hs-identifier hs-var hs-var">ksigDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679163957"><span class="hs-identifier hs-var">ksig</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-470"></span><span>                </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-471"></span><span>                </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163937"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163937"><span class="hs-identifier hs-var">k</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163937"><span class="hs-identifier hs-var">k</span></a></span><span>
</span><span id="line-472"></span><span>
</span><span id="line-473"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_newtype"><span class="hs-identifier hs-type">ppr_newtype</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Cxt"><span class="hs-identifier hs-type">Cxt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Kind"><span class="hs-identifier hs-type">Kind</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Con"><span class="hs-identifier hs-type">Con</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DerivClause"><span class="hs-identifier hs-type">DerivClause</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-474"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-475"></span><span id="ppr_newtype"><span class="annot"><span class="annottext">ppr_newtype :: Doc
-&gt; Cxt
-&gt; Maybe Name
-&gt; Doc
-&gt; Maybe Type
-&gt; Con
-&gt; [DerivClause]
-&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_newtype"><span class="hs-identifier hs-var hs-var">ppr_newtype</span></a></span></span><span> </span><span id="local-6989586621679163936"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163936"><span class="hs-identifier hs-var">maybeInst</span></a></span></span><span> </span><span id="local-6989586621679163935"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163935"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679163934"><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163934"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621679163933"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163933"><span class="hs-identifier hs-var">argsDoc</span></a></span></span><span> </span><span id="local-6989586621679163932"><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679163932"><span class="hs-identifier hs-var">ksig</span></a></span></span><span> </span><span id="local-6989586621679163931"><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679163931"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163930"><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679163930"><span class="hs-identifier hs-var">decs</span></a></span></span><span>
</span><span id="line-476"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;newtype&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163936"><span class="hs-identifier hs-var">maybeInst</span></a></span><span>
</span><span id="line-477"></span><span>            </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163935"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-478"></span><span>            </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163934"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-479"></span><span>                 </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163929"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163929"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163929"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163933"><span class="hs-identifier hs-var">argsDoc</span></a></span><span>
</span><span id="line-480"></span><span>                 </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163933"><span class="hs-identifier hs-var">argsDoc</span></a></span><span>
</span><span id="line-481"></span><span>            </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163928"><span class="hs-identifier hs-var">ksigDoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-482"></span><span>         </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'='</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Con -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679163931"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-483"></span><span>         </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">[DerivClause] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679163930"><span class="hs-identifier hs-var">decs</span></a></span><span>
</span><span id="line-484"></span><span>           </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-485"></span><span>           </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span>
</span><span id="line-486"></span><span>                </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(DerivClause -&gt; Doc) -&gt; [DerivClause] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">DerivClause -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_clause"><span class="hs-identifier hs-var">ppr_deriv_clause</span></a></span><span> </span><span class="annot"><span class="annottext">[DerivClause]
</span><a href="#local-6989586621679163930"><span class="hs-identifier hs-var">decs</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-487"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-488"></span><span>    </span><span id="local-6989586621679163928"><span class="annot"><span class="annottext">ksigDoc :: Doc
</span><a href="#local-6989586621679163928"><span class="hs-identifier hs-var hs-var">ksigDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="#local-6989586621679163932"><span class="hs-identifier hs-var">ksig</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-489"></span><span>                </span><span class="annot"><span class="annottext">Maybe Type
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-490"></span><span>                </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163926"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163926"><span class="hs-identifier hs-var">k</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163926"><span class="hs-identifier hs-var">k</span></a></span><span>
</span><span id="line-491"></span><span>
</span><span id="line-492"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_clause"><span class="hs-identifier hs-type">ppr_deriv_clause</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DerivClause"><span class="hs-identifier hs-type">DerivClause</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-493"></span><span id="ppr_deriv_clause"><span class="annot"><span class="annottext">ppr_deriv_clause :: DerivClause -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_clause"><span class="hs-identifier hs-var hs-var">ppr_deriv_clause</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DerivClause"><span class="hs-identifier hs-type">DerivClause</span></a></span><span> </span><span id="local-6989586621679163924"><span class="annot"><span class="annottext">Maybe DerivStrategy
</span><a href="#local-6989586621679163924"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span id="local-6989586621679163923"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163923"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-494"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;deriving&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163922"><span class="hs-identifier hs-var">pp_strat_before</span></a></span><span>
</span><span id="line-495"></span><span>                    </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-var">ppr_cxt_preds</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163923"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-496"></span><span>                    </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163920"><span class="hs-identifier hs-var">pp_strat_after</span></a></span><span>
</span><span id="line-497"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-498"></span><span>    </span><span class="hs-comment">-- @via@ is unique in that in comes /after/ the class being derived,</span><span>
</span><span id="line-499"></span><span>    </span><span class="hs-comment">-- so we must special-case it.</span><span>
</span><span id="line-500"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621679163922"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163922"><span class="hs-identifier hs-var">pp_strat_before</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163920"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163920"><span class="hs-identifier hs-var">pp_strat_after</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-501"></span><span>      </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe DerivStrategy
</span><a href="#local-6989586621679163924"><span class="hs-identifier hs-var">ds</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-502"></span><span>        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163919"><span class="annot"><span class="annottext">via :: DerivStrategy
</span><a href="#local-6989586621679163919"><span class="hs-keyword hs-var">via</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ViaStrategy"><span class="hs-identifier hs-type">ViaStrategy</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">DerivStrategy -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_strategy"><span class="hs-identifier hs-var">ppr_deriv_strategy</span></a></span><span> </span><span class="annot"><span class="annottext">DerivStrategy
</span><a href="#local-6989586621679163919"><span class="hs-keyword hs-var">via</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-503"></span><span>        </span><span class="annot"><span class="annottext">Maybe DerivStrategy
</span><span class="hs-identifier">_</span></span><span>                        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; (DerivStrategy -&gt; Doc) -&gt; Maybe DerivStrategy -&gt; Doc
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="annot"><span class="annottext">DerivStrategy -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_deriv_strategy"><span class="hs-identifier hs-var">ppr_deriv_strategy</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe DerivStrategy
</span><a href="#local-6989586621679163924"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-504"></span><span>
</span><span id="line-505"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_tySyn"><span class="hs-identifier hs-type">ppr_tySyn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-506"></span><span id="ppr_tySyn"><span class="annot"><span class="annottext">ppr_tySyn :: Doc -&gt; Maybe Name -&gt; Doc -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_tySyn"><span class="hs-identifier hs-var hs-var">ppr_tySyn</span></a></span></span><span> </span><span id="local-6989586621679163918"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163918"><span class="hs-identifier hs-var">maybeInst</span></a></span></span><span> </span><span id="local-6989586621679163917"><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163917"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621679163916"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163916"><span class="hs-identifier hs-var">argsDoc</span></a></span></span><span> </span><span id="local-6989586621679163915"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163915"><span class="hs-identifier hs-var">rhs</span></a></span></span><span>
</span><span id="line-507"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163918"><span class="hs-identifier hs-var">maybeInst</span></a></span><span>
</span><span id="line-508"></span><span>    </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163917"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-509"></span><span>         </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163914"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163914"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163914"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163916"><span class="hs-identifier hs-var">argsDoc</span></a></span><span>
</span><span id="line-510"></span><span>         </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163916"><span class="hs-identifier hs-var">argsDoc</span></a></span><span>
</span><span id="line-511"></span><span>    </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163915"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-512"></span><span>
</span><span id="line-513"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_tf_head"><span class="hs-identifier hs-type">ppr_tf_head</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TypeFamilyHead"><span class="hs-identifier hs-type">TypeFamilyHead</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-514"></span><span id="ppr_tf_head"><span class="annot"><span class="annottext">ppr_tf_head :: TypeFamilyHead -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_tf_head"><span class="hs-identifier hs-var hs-var">ppr_tf_head</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TypeFamilyHead"><span class="hs-identifier hs-type">TypeFamilyHead</span></a></span><span> </span><span id="local-6989586621679163912"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163912"><span class="hs-identifier hs-var">tc</span></a></span></span><span> </span><span id="local-6989586621679163911"><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679163911"><span class="hs-identifier hs-var">tvs</span></a></span></span><span> </span><span id="local-6989586621679163910"><span class="annot"><span class="annottext">FamilyResultSig
</span><a href="#local-6989586621679163910"><span class="hs-identifier hs-var">res</span></a></span></span><span> </span><span id="local-6989586621679163909"><span class="annot"><span class="annottext">Maybe InjectivityAnn
</span><a href="#local-6989586621679163909"><span class="hs-identifier hs-var">inj</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-515"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163912"><span class="hs-identifier hs-var">tc</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr () -&gt; Doc) -&gt; [TyVarBndr ()] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr () -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679163911"><span class="hs-identifier hs-var">tvs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FamilyResultSig -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">FamilyResultSig
</span><a href="#local-6989586621679163910"><span class="hs-identifier hs-var">res</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163908"><span class="hs-identifier hs-var">maybeInj</span></a></span><span>
</span><span id="line-516"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-517"></span><span>    </span><span id="local-6989586621679163908"><span class="annot"><span class="annottext">maybeInj :: Doc
</span><a href="#local-6989586621679163908"><span class="hs-identifier hs-var hs-var">maybeInj</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163906"><span class="annot"><span class="annottext">InjectivityAnn
</span><a href="#local-6989586621679163906"><span class="hs-identifier hs-var">inj'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe InjectivityAnn
</span><a href="#local-6989586621679163909"><span class="hs-identifier hs-var">inj</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InjectivityAnn -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">InjectivityAnn
</span><a href="#local-6989586621679163906"><span class="hs-identifier hs-var">inj'</span></a></span><span>
</span><span id="line-518"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-519"></span><span>
</span><span id="line-520"></span><span id="local-6989586621679164919"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_bndrs"><span class="hs-identifier hs-type">ppr_bndrs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#PprFlag"><span class="hs-identifier hs-type">PprFlag</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164919"><span class="hs-identifier hs-type">flag</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarBndr"><span class="hs-identifier hs-type">TyVarBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164919"><span class="hs-identifier hs-type">flag</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span></span><span>
</span><span id="line-521"></span><span id="ppr_bndrs"><span class="annot"><span class="annottext">ppr_bndrs :: forall flag. PprFlag flag =&gt; Maybe [TyVarBndr flag] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_bndrs"><span class="hs-identifier hs-var hs-var">ppr_bndrs</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163903"><span class="annot"><span class="annottext">[TyVarBndr flag]
</span><a href="#local-6989586621679163903"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;forall&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr flag -&gt; Doc) -&gt; [TyVarBndr flag] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr flag -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr flag]
</span><a href="#local-6989586621679163903"><span class="hs-identifier hs-var">bndrs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.&quot;</span></span><span>
</span><span id="line-522"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_bndrs"><span class="hs-identifier hs-var">ppr_bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr flag]
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-523"></span><span>
</span><span id="line-524"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-525"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FunDep"><span class="hs-identifier hs-type">FunDep</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-526"></span><span>    </span><span id="local-6989586621679163898"><span class="annot"><span class="annottext">ppr :: FunDep -&gt; Doc
</span><a href="#local-6989586621679163898"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FunDep"><span class="hs-identifier hs-type">FunDep</span></a></span><span> </span><span id="local-6989586621679163896"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163896"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621679163895"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163895"><span class="hs-identifier hs-var">ys</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Name -&gt; Doc) -&gt; [Name] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163896"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Name -&gt; Doc) -&gt; [Name] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163895"><span class="hs-identifier hs-var">ys</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-527"></span><span>    </span><span id="local-6989586621679163893"><span class="annot"><span class="annottext">ppr_list :: [FunDep] -&gt; Doc
</span><a href="#local-6989586621679163893"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr_list</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-528"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_list"><span class="hs-identifier hs-var">ppr_list</span></a></span><span> </span><span id="local-6989586621679163892"><span class="annot"><span class="annottext">[FunDep]
</span><a href="#local-6989586621679163892"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[FunDep] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[FunDep]
</span><a href="#local-6989586621679163892"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-529"></span><span>
</span><span id="line-530"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-531"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163889"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FamilyResultSig"><span class="hs-identifier hs-type">FamilyResultSig</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-532"></span><span>    </span><span id="local-6989586621679163886"><span class="annot"><span class="annottext">ppr :: FamilyResultSig -&gt; Doc
</span><a href="#local-6989586621679163886"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">FamilyResultSig
</span><a href="Language.Haskell.TH.Syntax.html#NoSig"><span class="hs-identifier hs-var">NoSig</span></a></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-533"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#KindSig"><span class="hs-identifier hs-type">KindSig</span></a></span><span> </span><span id="local-6989586621679163883"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163883"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163883"><span class="hs-identifier hs-var">k</span></a></span><span>
</span><span id="line-534"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarSig"><span class="hs-identifier hs-type">TyVarSig</span></a></span><span> </span><span id="local-6989586621679163881"><span class="annot"><span class="annottext">TyVarBndr ()
</span><a href="#local-6989586621679163881"><span class="hs-identifier hs-var">bndr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr () -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr ()
</span><a href="#local-6989586621679163881"><span class="hs-identifier hs-var">bndr</span></a></span><span>
</span><span id="line-535"></span><span>
</span><span id="line-536"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-537"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163878"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InjectivityAnn"><span class="hs-identifier hs-type">InjectivityAnn</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-538"></span><span>    </span><span id="local-6989586621679163875"><span class="annot"><span class="annottext">ppr :: InjectivityAnn -&gt; Doc
</span><a href="#local-6989586621679163875"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InjectivityAnn"><span class="hs-identifier hs-type">InjectivityAnn</span></a></span><span> </span><span id="local-6989586621679163873"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163873"><span class="hs-identifier hs-var">lhs</span></a></span></span><span> </span><span id="local-6989586621679163872"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163872"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-539"></span><span>        </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163873"><span class="hs-identifier hs-var">lhs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Name -&gt; Doc) -&gt; [Name] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163872"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-540"></span><span>
</span><span id="line-541"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-542"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163869"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Foreign"><span class="hs-identifier hs-type">Foreign</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-543"></span><span>    </span><span id="local-6989586621679163857"><span class="annot"><span class="annottext">ppr :: Foreign -&gt; Doc
</span><a href="#local-6989586621679163857"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ImportF"><span class="hs-identifier hs-type">ImportF</span></a></span><span> </span><span id="local-6989586621679163855"><span class="annot"><span class="annottext">Callconv
</span><a href="#local-6989586621679163855"><span class="hs-identifier hs-var">callconv</span></a></span></span><span> </span><span id="local-6989586621679163854"><span class="annot"><span class="annottext">Safety
</span><a href="#local-6989586621679163854"><span class="hs-identifier hs-var">safety</span></a></span></span><span> </span><span id="local-6989586621679163853"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163853"><span class="hs-identifier hs-var">impent</span></a></span></span><span> </span><span id="local-6989586621679163852"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163852"><span class="hs-keyword hs-var">as</span></a></span></span><span> </span><span id="local-6989586621679163851"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163851"><span class="hs-identifier hs-var">typ</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-544"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;foreign import&quot;</span></span><span>
</span><span id="line-545"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Callconv -&gt; Doc
forall a. Show a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#showtextl"><span class="hs-identifier hs-var">showtextl</span></a></span><span> </span><span class="annot"><span class="annottext">Callconv
</span><a href="#local-6989586621679163855"><span class="hs-identifier hs-var">callconv</span></a></span><span>
</span><span id="line-546"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Safety -&gt; Doc
forall a. Show a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#showtextl"><span class="hs-identifier hs-var">showtextl</span></a></span><span> </span><span class="annot"><span class="annottext">Safety
</span><a href="#local-6989586621679163854"><span class="hs-identifier hs-var">safety</span></a></span><span>
</span><span id="line-547"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163853"><span class="hs-identifier hs-var">impent</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-548"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163852"><span class="hs-keyword hs-var">as</span></a></span><span>
</span><span id="line-549"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163851"><span class="hs-identifier hs-var">typ</span></a></span><span>
</span><span id="line-550"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ExportF"><span class="hs-identifier hs-type">ExportF</span></a></span><span> </span><span id="local-6989586621679163848"><span class="annot"><span class="annottext">Callconv
</span><a href="#local-6989586621679163848"><span class="hs-identifier hs-var">callconv</span></a></span></span><span> </span><span id="local-6989586621679163847"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163847"><span class="hs-identifier hs-var">expent</span></a></span></span><span> </span><span id="local-6989586621679163846"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163846"><span class="hs-keyword hs-var">as</span></a></span></span><span> </span><span id="local-6989586621679163845"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163845"><span class="hs-identifier hs-var">typ</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-551"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;foreign export&quot;</span></span><span>
</span><span id="line-552"></span><span>      </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Callconv -&gt; Doc
forall a. Show a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#showtextl"><span class="hs-identifier hs-var">showtextl</span></a></span><span> </span><span class="annot"><span class="annottext">Callconv
</span><a href="#local-6989586621679163848"><span class="hs-identifier hs-var">callconv</span></a></span><span>
</span><span id="line-553"></span><span>      </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163847"><span class="hs-identifier hs-var">expent</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-554"></span><span>      </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163846"><span class="hs-keyword hs-var">as</span></a></span><span>
</span><span id="line-555"></span><span>      </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163845"><span class="hs-identifier hs-var">typ</span></a></span><span>
</span><span id="line-556"></span><span>
</span><span id="line-557"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-558"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163842"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Pragma"><span class="hs-identifier hs-type">Pragma</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-559"></span><span>    </span><span id="local-6989586621679163824"><span class="annot"><span class="annottext">ppr :: Pragma -&gt; Doc
</span><a href="#local-6989586621679163824"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InlineP"><span class="hs-identifier hs-type">InlineP</span></a></span><span> </span><span id="local-6989586621679163822"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163822"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163821"><span class="annot"><span class="annottext">Inline
</span><a href="#local-6989586621679163821"><span class="hs-identifier hs-var">inline</span></a></span></span><span> </span><span id="local-6989586621679163820"><span class="annot"><span class="annottext">RuleMatch
</span><a href="#local-6989586621679163820"><span class="hs-identifier hs-var">rm</span></a></span></span><span> </span><span id="local-6989586621679163819"><span class="annot"><span class="annottext">Phases
</span><a href="#local-6989586621679163819"><span class="hs-identifier hs-var">phases</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-560"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-#&quot;</span></span><span>
</span><span id="line-561"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Inline -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Inline
</span><a href="#local-6989586621679163821"><span class="hs-identifier hs-var">inline</span></a></span><span>
</span><span id="line-562"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">RuleMatch -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">RuleMatch
</span><a href="#local-6989586621679163820"><span class="hs-identifier hs-var">rm</span></a></span><span>
</span><span id="line-563"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Phases -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Phases
</span><a href="#local-6989586621679163819"><span class="hs-identifier hs-var">phases</span></a></span><span>
</span><span id="line-564"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163822"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-565"></span><span>     </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;#-}&quot;</span></span><span>
</span><span id="line-566"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SpecialiseP"><span class="hs-identifier hs-type">SpecialiseP</span></a></span><span> </span><span id="local-6989586621679163817"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163817"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163816"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163816"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679163815"><span class="annot"><span class="annottext">Maybe Inline
</span><a href="#local-6989586621679163815"><span class="hs-identifier hs-var">inline</span></a></span></span><span> </span><span id="local-6989586621679163814"><span class="annot"><span class="annottext">Phases
</span><a href="#local-6989586621679163814"><span class="hs-identifier hs-var">phases</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-567"></span><span>       </span><span class="hs-glyph">=</span><span>   </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# SPECIALISE&quot;</span></span><span>
</span><span id="line-568"></span><span>       </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; (Inline -&gt; Doc) -&gt; Maybe Inline -&gt; Doc
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="annot"><span class="annottext">Inline -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Inline
</span><a href="#local-6989586621679163815"><span class="hs-identifier hs-var">inline</span></a></span><span>
</span><span id="line-569"></span><span>       </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Phases -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Phases
</span><a href="#local-6989586621679163814"><span class="hs-identifier hs-var">phases</span></a></span><span>
</span><span id="line-570"></span><span>       </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163817"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span>
</span><span id="line-571"></span><span>               </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">2</span></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163816"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-572"></span><span>       </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;#-}&quot;</span></span><span>
</span><span id="line-573"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SpecialiseInstP"><span class="hs-identifier hs-type">SpecialiseInstP</span></a></span><span> </span><span id="local-6989586621679163812"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163812"><span class="hs-identifier hs-var">inst</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-574"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# SPECIALISE instance&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163812"><span class="hs-identifier hs-var">inst</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;#-}&quot;</span></span><span>
</span><span id="line-575"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RuleP"><span class="hs-identifier hs-type">RuleP</span></a></span><span> </span><span id="local-6989586621679163810"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163810"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163809"><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679163809"><span class="hs-identifier hs-var">ty_bndrs</span></a></span></span><span> </span><span id="local-6989586621679163808"><span class="annot"><span class="annottext">[RuleBndr]
</span><a href="#local-6989586621679163808"><span class="hs-identifier hs-var">tm_bndrs</span></a></span></span><span> </span><span id="local-6989586621679163807"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163807"><span class="hs-identifier hs-var">lhs</span></a></span></span><span> </span><span id="local-6989586621679163806"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163806"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span id="local-6989586621679163805"><span class="annot"><span class="annottext">Phases
</span><a href="#local-6989586621679163805"><span class="hs-identifier hs-var">phases</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-576"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# RULES&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163810"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Phases -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Phases
</span><a href="#local-6989586621679163805"><span class="hs-identifier hs-var">phases</span></a></span><span>
</span><span id="line-577"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">4</span></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()] -&gt; Doc
forall {a}. Ppr a =&gt; Maybe [a] -&gt; Doc
</span><a href="#local-6989586621679163804"><span class="hs-identifier hs-var">ppr_ty_forall</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679163809"><span class="hs-identifier hs-var">ty_bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()] -&gt; Doc
forall {a}. Maybe a -&gt; Doc
</span><a href="#local-6989586621679163803"><span class="hs-identifier hs-var">ppr_tm_forall</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe [TyVarBndr ()]
</span><a href="#local-6989586621679163809"><span class="hs-identifier hs-var">ty_bndrs</span></a></span><span>
</span><span id="line-578"></span><span>                                               </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163807"><span class="hs-identifier hs-var">lhs</span></a></span><span>
</span><span id="line-579"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">4</span></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'='</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163806"><span class="hs-identifier hs-var">rhs</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;#-}&quot;</span></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-580"></span><span>      </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679163804"><span class="annot"><span class="annottext">ppr_ty_forall :: Maybe [a] -&gt; Doc
</span><a href="#local-6989586621679163804"><span class="hs-identifier hs-var hs-var">ppr_ty_forall</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe [a]
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-581"></span><span>            </span><span class="annot"><a href="#local-6989586621679163804"><span class="hs-identifier hs-var">ppr_ty_forall</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163800"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679163800"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;forall&quot;</span></span><span>
</span><span id="line-582"></span><span>                                         </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621679163800"><span class="hs-identifier hs-var">bndrs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-583"></span><span>                                         </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'.'</span></span><span>
</span><span id="line-584"></span><span>            </span><span id="local-6989586621679163803"><span class="annot"><span class="annottext">ppr_tm_forall :: Maybe a -&gt; Doc
</span><a href="#local-6989586621679163803"><span class="hs-identifier hs-var hs-var">ppr_tm_forall</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[RuleBndr] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[RuleBndr]
</span><a href="#local-6989586621679163808"><span class="hs-identifier hs-var">tm_bndrs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-585"></span><span>            </span><span class="annot"><a href="#local-6989586621679163803"><span class="hs-identifier hs-var">ppr_tm_forall</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;forall&quot;</span></span><span>
</span><span id="line-586"></span><span>                              </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(RuleBndr -&gt; Doc) -&gt; [RuleBndr] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">RuleBndr -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[RuleBndr]
</span><a href="#local-6989586621679163808"><span class="hs-identifier hs-var">tm_bndrs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-587"></span><span>                              </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'.'</span></span><span>
</span><span id="line-588"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AnnP"><span class="hs-identifier hs-type">AnnP</span></a></span><span> </span><span id="local-6989586621679163795"><span class="annot"><span class="annottext">AnnTarget
</span><a href="#local-6989586621679163795"><span class="hs-identifier hs-var">tgt</span></a></span></span><span> </span><span id="local-6989586621679163794"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163794"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-589"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# ANN&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">AnnTarget -&gt; Doc
</span><a href="#local-6989586621679163793"><span class="hs-identifier hs-var">target1</span></a></span><span> </span><span class="annot"><span class="annottext">AnnTarget
</span><a href="#local-6989586621679163795"><span class="hs-identifier hs-var">tgt</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163794"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;#-}&quot;</span></span><span>
</span><span id="line-590"></span><span>      </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679163793"><span class="annot"><span class="annottext">target1 :: AnnTarget -&gt; Doc
</span><a href="#local-6989586621679163793"><span class="hs-identifier hs-var hs-var">target1</span></a></span></span><span> </span><span class="annot"><span class="annottext">AnnTarget
</span><a href="Language.Haskell.TH.Syntax.html#ModuleAnnotation"><span class="hs-identifier hs-var">ModuleAnnotation</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;module&quot;</span></span><span>
</span><span id="line-591"></span><span>            </span><span class="annot"><a href="#local-6989586621679163793"><span class="hs-identifier hs-var">target1</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TypeAnnotation"><span class="hs-identifier hs-type">TypeAnnotation</span></a></span><span> </span><span id="local-6989586621679163788"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163788"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163788"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-592"></span><span>            </span><span class="annot"><a href="#local-6989586621679163793"><span class="hs-identifier hs-var">target1</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ValueAnnotation"><span class="hs-identifier hs-type">ValueAnnotation</span></a></span><span> </span><span id="local-6989586621679163786"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163786"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163786"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-593"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LineP"><span class="hs-identifier hs-type">LineP</span></a></span><span> </span><span id="local-6989586621679163784"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163784"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span id="local-6989586621679163783"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163783"><span class="hs-identifier hs-var">file</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-594"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# LINE&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163784"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163783"><span class="hs-identifier hs-var">file</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;#-}&quot;</span></span><span>
</span><span id="line-595"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#CompleteP"><span class="hs-identifier hs-type">CompleteP</span></a></span><span> </span><span id="local-6989586621679163781"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163781"><span class="hs-identifier hs-var">cls</span></a></span></span><span> </span><span id="local-6989586621679163780"><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163780"><span class="hs-identifier hs-var">mty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-596"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# COMPLETE&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; Doc) -&gt; [Name] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163781"><span class="hs-identifier hs-var">cls</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-597"></span><span>                </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; (Name -&gt; Doc) -&gt; Maybe Name -&gt; Doc
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679163779"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163779"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163779"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="#local-6989586621679163780"><span class="hs-identifier hs-var">mty</span></a></span><span>
</span><span id="line-598"></span><span>
</span><span id="line-599"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-600"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163776"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Inline"><span class="hs-identifier hs-type">Inline</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-601"></span><span>    </span><span id="local-6989586621679163775"><span class="annot"><span class="annottext">ppr :: Inline -&gt; Doc
</span><a href="#local-6989586621679163775"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Inline
</span><a href="Language.Haskell.TH.Syntax.html#NoInline"><span class="hs-identifier hs-var">NoInline</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NOINLINE&quot;</span></span><span>
</span><span id="line-602"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Inline
</span><a href="Language.Haskell.TH.Syntax.html#Inline"><span class="hs-identifier hs-var">Inline</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;INLINE&quot;</span></span><span>
</span><span id="line-603"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Inline
</span><a href="Language.Haskell.TH.Syntax.html#Inlinable"><span class="hs-identifier hs-var">Inlinable</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;INLINABLE&quot;</span></span><span>
</span><span id="line-604"></span><span>
</span><span id="line-605"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-606"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163772"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RuleMatch"><span class="hs-identifier hs-type">RuleMatch</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-607"></span><span>    </span><span id="local-6989586621679163771"><span class="annot"><span class="annottext">ppr :: RuleMatch -&gt; Doc
</span><a href="#local-6989586621679163771"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">RuleMatch
</span><a href="Language.Haskell.TH.Syntax.html#ConLike"><span class="hs-identifier hs-var">ConLike</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;CONLIKE&quot;</span></span><span>
</span><span id="line-608"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">RuleMatch
</span><a href="Language.Haskell.TH.Syntax.html#FunLike"><span class="hs-identifier hs-var">FunLike</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-609"></span><span>
</span><span id="line-610"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-611"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163768"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Phases"><span class="hs-identifier hs-type">Phases</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-612"></span><span>    </span><span id="local-6989586621679163767"><span class="annot"><span class="annottext">ppr :: Phases -&gt; Doc
</span><a href="#local-6989586621679163767"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Phases
</span><a href="Language.Haskell.TH.Syntax.html#AllPhases"><span class="hs-identifier hs-var">AllPhases</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-613"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FromPhase"><span class="hs-identifier hs-type">FromPhase</span></a></span><span> </span><span id="local-6989586621679163766"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163766"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163766"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-614"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#BeforePhase"><span class="hs-identifier hs-type">BeforePhase</span></a></span><span> </span><span id="local-6989586621679163765"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163765"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'~'</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163765"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-615"></span><span>
</span><span id="line-616"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-617"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163762"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RuleBndr"><span class="hs-identifier hs-type">RuleBndr</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-618"></span><span>    </span><span id="local-6989586621679163758"><span class="annot"><span class="annottext">ppr :: RuleBndr -&gt; Doc
</span><a href="#local-6989586621679163758"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RuleVar"><span class="hs-identifier hs-type">RuleVar</span></a></span><span> </span><span id="local-6989586621679163756"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163756"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163756"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-619"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TypedRuleVar"><span class="hs-identifier hs-type">TypedRuleVar</span></a></span><span> </span><span id="local-6989586621679163754"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163754"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163753"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163753"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163754"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163753"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-620"></span><span>
</span><span id="line-621"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-622"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163750"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Clause"><span class="hs-identifier hs-type">Clause</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-623"></span><span>    </span><span id="local-6989586621679163749"><span class="annot"><span class="annottext">ppr :: Clause -&gt; Doc
</span><a href="#local-6989586621679163749"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Clause"><span class="hs-identifier hs-type">Clause</span></a></span><span> </span><span id="local-6989586621679163747"><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679163747"><span class="hs-identifier hs-var">ps</span></a></span></span><span> </span><span id="local-6989586621679163746"><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679163746"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span id="local-6989586621679163745"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679163745"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Pat -&gt; Doc) -&gt; [Pat] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Pat -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprPat"><span class="hs-identifier hs-var">pprPat</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Pat]
</span><a href="#local-6989586621679163747"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Body -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBody"><span class="hs-identifier hs-var">pprBody</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span> </span><span class="annot"><span class="annottext">Body
</span><a href="#local-6989586621679163746"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-624"></span><span>                             </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-var">where_clause</span></a></span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679163745"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-625"></span><span>
</span><span id="line-626"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-627"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163742"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Con"><span class="hs-identifier hs-type">Con</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-628"></span><span>    </span><span id="local-6989586621679163738"><span class="annot"><span class="annottext">ppr :: Con -&gt; Doc
</span><a href="#local-6989586621679163738"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#NormalC"><span class="hs-identifier hs-type">NormalC</span></a></span><span> </span><span id="local-6989586621679163736"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163736"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163735"><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163735"><span class="hs-identifier hs-var">sts</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163736"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BangType -&gt; Doc) -&gt; [BangType] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var">pprBangType</span></a></span><span> </span><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163735"><span class="hs-identifier hs-var">sts</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-629"></span><span>
</span><span id="line-630"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecC"><span class="hs-identifier hs-type">RecC</span></a></span><span> </span><span id="local-6989586621679163732"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163732"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163731"><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163731"><span class="hs-identifier hs-var">vsts</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-631"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163732"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(VarBangType -&gt; Doc) -&gt; [VarBangType] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">VarBangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprVarBangType"><span class="hs-identifier hs-var">pprVarBangType</span></a></span><span> </span><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163731"><span class="hs-identifier hs-var">vsts</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-632"></span><span>
</span><span id="line-633"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixC"><span class="hs-identifier hs-type">InfixC</span></a></span><span> </span><span id="local-6989586621679163728"><span class="annot"><span class="annottext">BangType
</span><a href="#local-6989586621679163728"><span class="hs-identifier hs-var">st1</span></a></span></span><span> </span><span id="local-6989586621679163727"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163727"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163726"><span class="annot"><span class="annottext">BangType
</span><a href="#local-6989586621679163726"><span class="hs-identifier hs-var">st2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var">pprBangType</span></a></span><span> </span><span class="annot"><span class="annottext">BangType
</span><a href="#local-6989586621679163728"><span class="hs-identifier hs-var">st1</span></a></span><span>
</span><span id="line-634"></span><span>                         </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163727"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-635"></span><span>                         </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var">pprBangType</span></a></span><span> </span><span class="annot"><span class="annottext">BangType
</span><a href="#local-6989586621679163726"><span class="hs-identifier hs-var">st2</span></a></span><span>
</span><span id="line-636"></span><span>
</span><span id="line-637"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallC"><span class="hs-identifier hs-type">ForallC</span></a></span><span> </span><span id="local-6989586621679163725"><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163725"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span id="local-6989586621679163724"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163724"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#GadtC"><span class="hs-identifier hs-type">GadtC</span></a></span><span> </span><span id="local-6989586621679163723"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163723"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163722"><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163722"><span class="hs-identifier hs-var">sts</span></a></span></span><span> </span><span id="local-6989586621679163721"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163721"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-638"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Name] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepApplied"><span class="hs-identifier hs-var">commaSepApplied</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163723"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall"><span class="hs-identifier hs-var">pprForall</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163725"><span class="hs-identifier hs-var">ns</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163724"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-639"></span><span>      </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[BangType] -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprGadtRHS"><span class="hs-identifier hs-var">pprGadtRHS</span></a></span><span> </span><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163722"><span class="hs-identifier hs-var">sts</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163721"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-640"></span><span>
</span><span id="line-641"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallC"><span class="hs-identifier hs-type">ForallC</span></a></span><span> </span><span id="local-6989586621679163717"><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163717"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span id="local-6989586621679163716"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163716"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecGadtC"><span class="hs-identifier hs-type">RecGadtC</span></a></span><span> </span><span id="local-6989586621679163715"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163715"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163714"><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163714"><span class="hs-identifier hs-var">vsts</span></a></span></span><span> </span><span id="local-6989586621679163713"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163713"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-642"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Name] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepApplied"><span class="hs-identifier hs-var">commaSepApplied</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163715"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall"><span class="hs-identifier hs-var">pprForall</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163717"><span class="hs-identifier hs-var">ns</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163716"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-643"></span><span>      </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[VarBangType] -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprRecFields"><span class="hs-identifier hs-var">pprRecFields</span></a></span><span> </span><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163714"><span class="hs-identifier hs-var">vsts</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163713"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-644"></span><span>
</span><span id="line-645"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallC"><span class="hs-identifier hs-type">ForallC</span></a></span><span> </span><span id="local-6989586621679163711"><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163711"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span id="local-6989586621679163710"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163710"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679163709"><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679163709"><span class="hs-identifier hs-var">con</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-646"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall"><span class="hs-identifier hs-var">pprForall</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163711"><span class="hs-identifier hs-var">ns</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163710"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Con -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Con
</span><a href="#local-6989586621679163709"><span class="hs-identifier hs-var">con</span></a></span><span>
</span><span id="line-647"></span><span>
</span><span id="line-648"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#GadtC"><span class="hs-identifier hs-type">GadtC</span></a></span><span> </span><span id="local-6989586621679163708"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163708"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163707"><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163707"><span class="hs-identifier hs-var">sts</span></a></span></span><span> </span><span id="local-6989586621679163706"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163706"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-649"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Name] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepApplied"><span class="hs-identifier hs-var">commaSepApplied</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163708"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[BangType] -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprGadtRHS"><span class="hs-identifier hs-var">pprGadtRHS</span></a></span><span> </span><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163707"><span class="hs-identifier hs-var">sts</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163706"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-650"></span><span>
</span><span id="line-651"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecGadtC"><span class="hs-identifier hs-type">RecGadtC</span></a></span><span> </span><span id="local-6989586621679163705"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163705"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679163704"><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163704"><span class="hs-identifier hs-var">vsts</span></a></span></span><span> </span><span id="local-6989586621679163703"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163703"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-652"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Name] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepApplied"><span class="hs-identifier hs-var">commaSepApplied</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163705"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[VarBangType] -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprRecFields"><span class="hs-identifier hs-var">pprRecFields</span></a></span><span> </span><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163704"><span class="hs-identifier hs-var">vsts</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163703"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-653"></span><span>
</span><span id="line-654"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163700"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatSynDir"><span class="hs-identifier hs-type">PatSynDir</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-655"></span><span>  </span><span id="local-6989586621679163699"><span class="annot"><span class="annottext">ppr :: PatSynDir -&gt; Doc
</span><a href="#local-6989586621679163699"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">PatSynDir
</span><a href="Language.Haskell.TH.Syntax.html#Unidir"><span class="hs-identifier hs-var">Unidir</span></a></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;-&quot;</span></span><span>
</span><span id="line-656"></span><span>  </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">PatSynDir
</span><a href="Language.Haskell.TH.Syntax.html#ImplBidir"><span class="hs-identifier hs-var">ImplBidir</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span>
</span><span id="line-657"></span><span>  </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ExplBidir"><span class="hs-identifier hs-type">ExplBidir</span></a></span><span> </span><span class="annot"><span class="annottext">[Clause]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;-&quot;</span></span><span>
</span><span id="line-658"></span><span>    </span><span class="hs-comment">-- the ExplBidir's clauses are pretty printed together with the</span><span>
</span><span id="line-659"></span><span>    </span><span class="hs-comment">-- entire pattern synonym; so only print the direction here.</span><span>
</span><span id="line-660"></span><span>
</span><span id="line-661"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163694"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PatSynArgs"><span class="hs-identifier hs-type">PatSynArgs</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-662"></span><span>  </span><span id="local-6989586621679163689"><span class="annot"><span class="annottext">ppr :: PatSynArgs -&gt; Doc
</span><a href="#local-6989586621679163689"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PrefixPatSyn"><span class="hs-identifier hs-type">PrefixPatSyn</span></a></span><span> </span><span id="local-6989586621679163687"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163687"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; Doc) -&gt; [Name] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163687"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-663"></span><span>  </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixPatSyn"><span class="hs-identifier hs-type">InfixPatSyn</span></a></span><span> </span><span id="local-6989586621679163686"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163686"><span class="hs-identifier hs-var">a1</span></a></span></span><span> </span><span id="local-6989586621679163685"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163685"><span class="hs-identifier hs-var">a2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163686"><span class="hs-identifier hs-var">a1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163685"><span class="hs-identifier hs-var">a2</span></a></span><span>
</span><span id="line-664"></span><span>  </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#RecordPatSyn"><span class="hs-identifier hs-type">RecordPatSyn</span></a></span><span> </span><span id="local-6989586621679163683"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163683"><span class="hs-identifier hs-var">sels</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Name -&gt; Doc) -&gt; [Name] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621679163683"><span class="hs-identifier hs-var">sels</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-665"></span><span>
</span><span id="line-666"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#commaSepApplied"><span class="hs-identifier hs-type">commaSepApplied</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-667"></span><span id="commaSepApplied"><span class="annot"><span class="annottext">commaSepApplied :: [Name] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepApplied"><span class="hs-identifier hs-var hs-var">commaSepApplied</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Name -&gt; Doc) -&gt; [Name] -&gt; Doc
forall a. (a -&gt; Doc) -&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepWith"><span class="hs-identifier hs-var">commaSepWith</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-668"></span><span>
</span><span id="line-669"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprForall"><span class="hs-identifier hs-type">pprForall</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarBndr"><span class="hs-identifier hs-type">TyVarBndr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Specificity"><span class="hs-identifier hs-type">Specificity</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Cxt"><span class="hs-identifier hs-type">Cxt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-670"></span><span id="pprForall"><span class="annot"><span class="annottext">pprForall :: [TyVarBndr Specificity] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall"><span class="hs-identifier hs-var hs-var">pprForall</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ForallVisFlag -&gt; [TyVarBndr Specificity] -&gt; Cxt -&gt; Doc
forall flag.
PprFlag flag =&gt;
ForallVisFlag -&gt; [TyVarBndr flag] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall%27"><span class="hs-identifier hs-var">pprForall'</span></a></span><span> </span><span class="annot"><span class="annottext">ForallVisFlag
</span><a href="Language.Haskell.TH.Ppr.html#ForallInvis"><span class="hs-identifier hs-var">ForallInvis</span></a></span><span>
</span><span id="line-671"></span><span>
</span><span id="line-672"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprForallVis"><span class="hs-identifier hs-type">pprForallVis</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarBndr"><span class="hs-identifier hs-type">TyVarBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Cxt"><span class="hs-identifier hs-type">Cxt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-673"></span><span id="pprForallVis"><span class="annot"><span class="annottext">pprForallVis :: [TyVarBndr ()] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForallVis"><span class="hs-identifier hs-var hs-var">pprForallVis</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ForallVisFlag -&gt; [TyVarBndr ()] -&gt; Cxt -&gt; Doc
forall flag.
PprFlag flag =&gt;
ForallVisFlag -&gt; [TyVarBndr flag] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall%27"><span class="hs-identifier hs-var">pprForall'</span></a></span><span> </span><span class="annot"><span class="annottext">ForallVisFlag
</span><a href="Language.Haskell.TH.Ppr.html#ForallVis"><span class="hs-identifier hs-var">ForallVis</span></a></span><span>
</span><span id="line-674"></span><span>
</span><span id="line-675"></span><span id="local-6989586621679164908"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprForall%27"><span class="hs-identifier hs-type">pprForall'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#PprFlag"><span class="hs-identifier hs-type">PprFlag</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164908"><span class="hs-identifier hs-type">flag</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ForallVisFlag"><span class="hs-identifier hs-type">ForallVisFlag</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarBndr"><span class="hs-identifier hs-type">TyVarBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164908"><span class="hs-identifier hs-type">flag</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Cxt"><span class="hs-identifier hs-type">Cxt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span></span><span>
</span><span id="line-676"></span><span id="pprForall%27"><span class="annot"><span class="annottext">pprForall' :: forall flag.
PprFlag flag =&gt;
ForallVisFlag -&gt; [TyVarBndr flag] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall%27"><span class="hs-identifier hs-var hs-var">pprForall'</span></a></span></span><span> </span><span id="local-6989586621679163676"><span class="annot"><span class="annottext">ForallVisFlag
</span><a href="#local-6989586621679163676"><span class="hs-identifier hs-var">fvf</span></a></span></span><span> </span><span id="local-6989586621679163675"><span class="annot"><span class="annottext">[TyVarBndr flag]
</span><a href="#local-6989586621679163675"><span class="hs-identifier hs-var">tvs</span></a></span></span><span> </span><span id="local-6989586621679163674"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163674"><span class="hs-identifier hs-var">cxt</span></a></span></span><span>
</span><span id="line-677"></span><span>  </span><span class="hs-comment">-- even in the case without any tvs, there could be a non-empty</span><span>
</span><span id="line-678"></span><span>  </span><span class="hs-comment">-- context cxt (e.g., in the case of pattern synonyms, where there</span><span>
</span><span id="line-679"></span><span>  </span><span class="hs-comment">-- are multiple forall binders and contexts).</span><span>
</span><span id="line-680"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[TyVarBndr flag]
</span><a href="#local-6989586621679163675"><span class="hs-identifier hs-var">tvs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163674"><span class="hs-identifier hs-var">cxt</span></a></span><span>
</span><span id="line-681"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;forall&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyVarBndr flag -&gt; Doc) -&gt; [TyVarBndr flag] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr flag -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr flag]
</span><a href="#local-6989586621679163675"><span class="hs-identifier hs-var">tvs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-682"></span><span>                              </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163673"><span class="hs-identifier hs-var">separator</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163674"><span class="hs-identifier hs-var">cxt</span></a></span><span>
</span><span id="line-683"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-684"></span><span>    </span><span id="local-6989586621679163673"><span class="annot"><span class="annottext">separator :: Doc
</span><a href="#local-6989586621679163673"><span class="hs-identifier hs-var hs-var">separator</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">ForallVisFlag
</span><a href="#local-6989586621679163676"><span class="hs-identifier hs-var">fvf</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-685"></span><span>                  </span><span class="annot"><span class="annottext">ForallVisFlag
</span><a href="Language.Haskell.TH.Ppr.html#ForallVis"><span class="hs-identifier hs-var">ForallVis</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span>
</span><span id="line-686"></span><span>                  </span><span class="annot"><span class="annottext">ForallVisFlag
</span><a href="Language.Haskell.TH.Ppr.html#ForallInvis"><span class="hs-identifier hs-var">ForallInvis</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'.'</span></span><span>
</span><span id="line-687"></span><span>
</span><span id="line-688"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprRecFields"><span class="hs-identifier hs-type">pprRecFields</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Strict"><span class="hs-identifier hs-type">Strict</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-689"></span><span id="pprRecFields"><span class="annot"><span class="annottext">pprRecFields :: [VarBangType] -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprRecFields"><span class="hs-identifier hs-var hs-var">pprRecFields</span></a></span></span><span> </span><span id="local-6989586621679163671"><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163671"><span class="hs-identifier hs-var">vsts</span></a></span></span><span> </span><span id="local-6989586621679163670"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163670"><span class="hs-identifier hs-var">ty</span></a></span></span><span>
</span><span id="line-690"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(VarBangType -&gt; Doc) -&gt; [VarBangType] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">VarBangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprVarBangType"><span class="hs-identifier hs-var">pprVarBangType</span></a></span><span> </span><span class="annot"><span class="annottext">[VarBangType]
</span><a href="#local-6989586621679163671"><span class="hs-identifier hs-var">vsts</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-691"></span><span>  </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163670"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-692"></span><span>
</span><span id="line-693"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprGadtRHS"><span class="hs-identifier hs-type">pprGadtRHS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Strict"><span class="hs-identifier hs-type">Strict</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-694"></span><span id="pprGadtRHS"><span class="annot"><span class="annottext">pprGadtRHS :: [BangType] -&gt; Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprGadtRHS"><span class="hs-identifier hs-var hs-var">pprGadtRHS</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span id="local-6989586621679163669"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163669"><span class="hs-identifier hs-var">ty</span></a></span></span><span>
</span><span id="line-695"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163669"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-696"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprGadtRHS"><span class="hs-identifier hs-var">pprGadtRHS</span></a></span><span> </span><span id="local-6989586621679163668"><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163668"><span class="hs-identifier hs-var">sts</span></a></span></span><span> </span><span id="local-6989586621679163667"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163667"><span class="hs-identifier hs-var">ty</span></a></span></span><span>
</span><span id="line-697"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#space"><span class="hs-identifier hs-var">space</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BangType -&gt; Doc) -&gt; [BangType] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var">pprBangType</span></a></span><span> </span><span class="annot"><span class="annottext">[BangType]
</span><a href="#local-6989586621679163668"><span class="hs-identifier hs-var">sts</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-698"></span><span>  </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163667"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-699"></span><span>
</span><span id="line-700"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-701"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprVarBangType"><span class="hs-identifier hs-type">pprVarBangType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#VarBangType"><span class="hs-identifier hs-type">VarBangType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-702"></span><span class="hs-comment">-- Slight infelicity: with print non-atomic type with parens</span><span>
</span><span id="line-703"></span><span id="pprVarBangType"><span class="annot"><span class="annottext">pprVarBangType :: VarBangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprVarBangType"><span class="hs-identifier hs-var hs-var">pprVarBangType</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163665"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163665"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163664"><span class="annot"><span class="annottext">Bang
</span><a href="#local-6989586621679163664"><span class="hs-identifier hs-var">bang</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163663"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163663"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163665"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var">pprBangType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bang
</span><a href="#local-6989586621679163664"><span class="hs-identifier hs-var">bang</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163663"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-704"></span><span>
</span><span id="line-705"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-706"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-type">pprBangType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#BangType"><span class="hs-identifier hs-type">BangType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-707"></span><span class="hs-comment">-- Make sure we print</span><span>
</span><span id="line-708"></span><span class="hs-comment">--</span><span>
</span><span id="line-709"></span><span class="hs-comment">-- Con {-# UNPACK #-} a</span><span>
</span><span id="line-710"></span><span class="hs-comment">--</span><span>
</span><span id="line-711"></span><span class="hs-comment">-- rather than</span><span>
</span><span id="line-712"></span><span class="hs-comment">--</span><span>
</span><span id="line-713"></span><span class="hs-comment">-- Con {-# UNPACK #-}a</span><span>
</span><span id="line-714"></span><span class="hs-comment">--</span><span>
</span><span id="line-715"></span><span class="hs-comment">-- when there's no strictness annotation. If there is a strictness annotation,</span><span>
</span><span id="line-716"></span><span class="hs-comment">-- it's okay to not put a space between it and the type.</span><span>
</span><span id="line-717"></span><span id="pprBangType"><span class="annot"><span class="annottext">pprBangType :: BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var hs-var">pprBangType</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163662"><span class="annot"><span class="annottext">bt :: Bang
</span><a href="#local-6989586621679163662"><span class="hs-identifier hs-var">bt</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Bang"><span class="hs-identifier hs-type">Bang</span></a></span><span> </span><span class="annot"><span class="annottext">SourceUnpackedness
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SourceStrictness
</span><a href="Language.Haskell.TH.Syntax.html#NoSourceStrictness"><span class="hs-identifier hs-var">NoSourceStrictness</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163659"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163659"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bang -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bang
</span><a href="#local-6989586621679163662"><span class="hs-identifier hs-var">bt</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163659"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-718"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var">pprBangType</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163658"><span class="annot"><span class="annottext">Bang
</span><a href="#local-6989586621679163658"><span class="hs-identifier hs-var">bt</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163657"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163657"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bang -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bang
</span><a href="#local-6989586621679163658"><span class="hs-identifier hs-var">bt</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163657"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-719"></span><span>
</span><span id="line-720"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-721"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163654"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Bang"><span class="hs-identifier hs-type">Bang</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-722"></span><span>    </span><span id="local-6989586621679163651"><span class="annot"><span class="annottext">ppr :: Bang -&gt; Doc
</span><a href="#local-6989586621679163651"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Bang"><span class="hs-identifier hs-type">Bang</span></a></span><span> </span><span id="local-6989586621679163650"><span class="annot"><span class="annottext">SourceUnpackedness
</span><a href="#local-6989586621679163650"><span class="hs-identifier hs-var">su</span></a></span></span><span> </span><span id="local-6989586621679163649"><span class="annot"><span class="annottext">SourceStrictness
</span><a href="#local-6989586621679163649"><span class="hs-identifier hs-var">ss</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SourceUnpackedness -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SourceUnpackedness
</span><a href="#local-6989586621679163650"><span class="hs-identifier hs-var">su</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SourceStrictness -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SourceStrictness
</span><a href="#local-6989586621679163649"><span class="hs-identifier hs-var">ss</span></a></span><span>
</span><span id="line-723"></span><span>
</span><span id="line-724"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-725"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163646"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SourceUnpackedness"><span class="hs-identifier hs-type">SourceUnpackedness</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-726"></span><span>    </span><span id="local-6989586621679163645"><span class="annot"><span class="annottext">ppr :: SourceUnpackedness -&gt; Doc
</span><a href="#local-6989586621679163645"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">SourceUnpackedness
</span><a href="Language.Haskell.TH.Syntax.html#NoSourceUnpackedness"><span class="hs-identifier hs-var">NoSourceUnpackedness</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-727"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SourceUnpackedness
</span><a href="Language.Haskell.TH.Syntax.html#SourceNoUnpack"><span class="hs-identifier hs-var">SourceNoUnpack</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# NOUNPACK #-}&quot;</span></span><span>
</span><span id="line-728"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SourceUnpackedness
</span><a href="Language.Haskell.TH.Syntax.html#SourceUnpack"><span class="hs-identifier hs-var">SourceUnpack</span></a></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# UNPACK #-}&quot;</span></span><span>
</span><span id="line-729"></span><span>
</span><span id="line-730"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-731"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163639"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SourceStrictness"><span class="hs-identifier hs-type">SourceStrictness</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-732"></span><span>    </span><span id="local-6989586621679163638"><span class="annot"><span class="annottext">ppr :: SourceStrictness -&gt; Doc
</span><a href="#local-6989586621679163638"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">SourceStrictness
</span><a href="Language.Haskell.TH.Syntax.html#NoSourceStrictness"><span class="hs-identifier hs-var">NoSourceStrictness</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-733"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SourceStrictness
</span><a href="Language.Haskell.TH.Syntax.html#SourceLazy"><span class="hs-identifier hs-var">SourceLazy</span></a></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'~'</span></span><span>
</span><span id="line-734"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SourceStrictness
</span><a href="Language.Haskell.TH.Syntax.html#SourceStrict"><span class="hs-identifier hs-var">SourceStrict</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'!'</span></span><span>
</span><span id="line-735"></span><span>
</span><span id="line-736"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-737"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163633"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#DecidedStrictness"><span class="hs-identifier hs-type">DecidedStrictness</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-738"></span><span>    </span><span id="local-6989586621679163632"><span class="annot"><span class="annottext">ppr :: DecidedStrictness -&gt; Doc
</span><a href="#local-6989586621679163632"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">DecidedStrictness
</span><a href="Language.Haskell.TH.Syntax.html#DecidedLazy"><span class="hs-identifier hs-var">DecidedLazy</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-739"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">DecidedStrictness
</span><a href="Language.Haskell.TH.Syntax.html#DecidedStrict"><span class="hs-identifier hs-var">DecidedStrict</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'!'</span></span><span>
</span><span id="line-740"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">DecidedStrictness
</span><a href="Language.Haskell.TH.Syntax.html#DecidedUnpack"><span class="hs-identifier hs-var">DecidedUnpack</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# UNPACK #-} !&quot;</span></span><span>
</span><span id="line-741"></span><span>
</span><span id="line-742"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-743"></span><span class="hs-pragma">{-# DEPRECATED</span><span> </span><span class="hs-pragma">pprVarStrictType</span><span>
</span><span id="line-744"></span><span>               </span><span class="hs-pragma">&quot;As of @template-haskell-2.11.0.0@, 'VarStrictType' has been replaced by 'VarBangType'. Please use 'pprVarBangType' instead.&quot;</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-745"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprVarStrictType"><span class="hs-identifier hs-type">pprVarStrictType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Strict"><span class="hs-identifier hs-type">Strict</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-746"></span><span id="pprVarStrictType"><span class="annot"><span class="annottext">pprVarStrictType :: VarBangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprVarStrictType"><span class="hs-identifier hs-var hs-var">pprVarStrictType</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">VarBangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprVarBangType"><span class="hs-identifier hs-var">pprVarBangType</span></a></span><span>
</span><span id="line-747"></span><span>
</span><span id="line-748"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-749"></span><span class="hs-pragma">{-# DEPRECATED</span><span> </span><span class="hs-pragma">pprStrictType</span><span>
</span><span id="line-750"></span><span>               </span><span class="hs-pragma">&quot;As of @template-haskell-2.11.0.0@, 'StrictType' has been replaced by 'BangType'. Please use 'pprBangType' instead.&quot;</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-751"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprStrictType"><span class="hs-identifier hs-type">pprStrictType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Strict"><span class="hs-identifier hs-type">Strict</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-752"></span><span id="pprStrictType"><span class="annot"><span class="annottext">pprStrictType :: BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprStrictType"><span class="hs-identifier hs-var hs-var">pprStrictType</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BangType -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprBangType"><span class="hs-identifier hs-var">pprBangType</span></a></span><span>
</span><span id="line-753"></span><span>
</span><span id="line-754"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-755"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-type">pprParendType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-756"></span><span id="pprParendType"><span class="annot"><span class="annottext">pprParendType :: Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var hs-var">pprParendType</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#VarT"><span class="hs-identifier hs-type">VarT</span></a></span><span> </span><span id="local-6989586621679163625"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163625"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163625"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-757"></span><span class="hs-comment">-- `Applied` is used here instead of `ppr` because of infix names (#13887)</span><span>
</span><span id="line-758"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ConT"><span class="hs-identifier hs-type">ConT</span></a></span><span> </span><span id="local-6989586621679163623"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163623"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163623"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-759"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupleT"><span class="hs-identifier hs-type">TupleT</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;()&quot;</span></span><span>
</span><span id="line-760"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupleT"><span class="hs-identifier hs-type">TupleT</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Type
</span><a href="Language.Haskell.TH.Syntax.html#ConT"><span class="hs-identifier hs-var">ConT</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Name
</span><a href="Language.Haskell.TH.Syntax.html#tupleTypeName"><span class="hs-identifier hs-var">tupleTypeName</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-761"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupleT"><span class="hs-identifier hs-type">TupleT</span></a></span><span> </span><span id="local-6989586621679163620"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163620"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; [Doc]
forall a. SumAlt -&gt; a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#replicate"><span class="hs-identifier hs-var">replicate</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163620"><span class="hs-identifier hs-var">n</span></a></span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; SumAlt
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-762"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboxedTupleT"><span class="hs-identifier hs-type">UnboxedTupleT</span></a></span><span> </span><span id="local-6989586621679163616"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163616"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#hashParens"><span class="hs-identifier hs-var">hashParens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; [Doc]
forall a. SumAlt -&gt; a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#replicate"><span class="hs-identifier hs-var">replicate</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163616"><span class="hs-identifier hs-var">n</span></a></span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; SumAlt
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-763"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UnboxedSumT"><span class="hs-identifier hs-type">UnboxedSumT</span></a></span><span> </span><span id="local-6989586621679163614"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163614"><span class="hs-identifier hs-var">arity</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#hashParens"><span class="hs-identifier hs-var">hashParens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; [Doc] -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; [Doc]
forall a. SumAlt -&gt; a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#replicate"><span class="hs-identifier hs-var">replicate</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163614"><span class="hs-identifier hs-var">arity</span></a></span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; SumAlt
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span>
</span><span id="line-764"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#ArrowT"><span class="hs-identifier hs-var">ArrowT</span></a></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-765"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#MulArrowT"><span class="hs-identifier hs-var">MulArrowT</span></a></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;FUN&quot;</span></span><span>
</span><span id="line-766"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#ListT"><span class="hs-identifier hs-var">ListT</span></a></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;[]&quot;</span></span><span>
</span><span id="line-767"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#LitT"><span class="hs-identifier hs-type">LitT</span></a></span><span> </span><span id="local-6989586621679163609"><span class="annot"><span class="annottext">TyLit
</span><a href="#local-6989586621679163609"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">)</span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TyLit -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyLit"><span class="hs-identifier hs-var">pprTyLit</span></a></span><span> </span><span class="annot"><span class="annottext">TyLit
</span><a href="#local-6989586621679163609"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-768"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PromotedT"><span class="hs-identifier hs-type">PromotedT</span></a></span><span> </span><span id="local-6989586621679163606"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163606"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Applied"><span class="hs-identifier hs-var">Applied</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163606"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-769"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PromotedTupleT"><span class="hs-identifier hs-type">PromotedTupleT</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'()&quot;</span></span><span>
</span><span id="line-770"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PromotedTupleT"><span class="hs-identifier hs-type">PromotedTupleT</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Type
</span><a href="Language.Haskell.TH.Syntax.html#PromotedT"><span class="hs-identifier hs-var">PromotedT</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Name
</span><a href="Language.Haskell.TH.Syntax.html#tupleDataName"><span class="hs-identifier hs-var">tupleDataName</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-771"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PromotedTupleT"><span class="hs-identifier hs-type">PromotedTupleT</span></a></span><span> </span><span id="local-6989586621679163604"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163604"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#quoteParens"><span class="hs-identifier hs-var">quoteParens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; [Doc]
forall a. SumAlt -&gt; a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#replicate"><span class="hs-identifier hs-var">replicate</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163604"><span class="hs-identifier hs-var">n</span></a></span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; SumAlt
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-772"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#PromotedNilT"><span class="hs-identifier hs-var">PromotedNilT</span></a></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'[]&quot;</span></span><span>
</span><span id="line-773"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#PromotedConsT"><span class="hs-identifier hs-var">PromotedConsT</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'(:)&quot;</span></span><span>
</span><span id="line-774"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#StarT"><span class="hs-identifier hs-var">StarT</span></a></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'*'</span></span><span>
</span><span id="line-775"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#ConstraintT"><span class="hs-identifier hs-var">ConstraintT</span></a></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Constraint&quot;</span></span><span>
</span><span id="line-776"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SigT"><span class="hs-identifier hs-type">SigT</span></a></span><span> </span><span id="local-6989586621679163597"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163597"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679163596"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163596"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163597"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;::&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163596"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-777"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#WildCardT"><span class="hs-identifier hs-var">WildCardT</span></a></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'_'</span></span><span>
</span><span id="line-778"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#InfixT"><span class="hs-identifier hs-type">InfixT</span></a></span><span> </span><span id="local-6989586621679163593"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163593"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621679163592"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163592"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163591"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163591"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163593"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163592"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163591"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-779"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span id="local-6989586621679163590"><span class="annot"><span class="annottext">t :: Type
</span><a href="#local-6989586621679163590"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UInfixT"><span class="hs-identifier hs-type">UInfixT</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprUInfixT"><span class="hs-identifier hs-var">pprUInfixT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163590"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-780"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ParensT"><span class="hs-identifier hs-type">ParensT</span></a></span><span> </span><span id="local-6989586621679163586"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163586"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163586"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-781"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span id="local-6989586621679163585"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163585"><span class="hs-identifier hs-var">tuple</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupleT"><span class="hs-identifier hs-type">TupleT</span></a></span><span> </span><span id="local-6989586621679163584"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163584"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163583"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163583"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Type -&gt; (Type, [TypeArg])
</span><a href="Language.Haskell.TH.Ppr.html#split"><span class="hs-identifier hs-var">split</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163585"><span class="hs-identifier hs-var">tuple</span></a></span><span>
</span><span id="line-782"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[TypeArg] -&gt; SumAlt
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; SumAlt
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163583"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3D%3D"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163584"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-783"></span><span>                    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[TypeArg] -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163583"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-784"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ImplicitParamT"><span class="hs-identifier hs-type">ImplicitParamT</span></a></span><span> </span><span id="local-6989586621679163579"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163579"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163578"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163578"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'?'</span></span><span class="annot"><span class="annottext">Char -&gt; String -&gt; String
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163579"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;::&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163578"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-785"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#EqualityT"><span class="hs-identifier hs-var">EqualityT</span></a></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;(~)&quot;</span></span><span>
</span><span id="line-786"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span id="local-6989586621679163576"><span class="annot"><span class="annottext">t :: Type
</span><a href="#local-6989586621679163576"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallT"><span class="hs-identifier hs-type">ForallT</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163576"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-787"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span id="local-6989586621679163575"><span class="annot"><span class="annottext">t :: Type
</span><a href="#local-6989586621679163575"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallVisT"><span class="hs-identifier hs-type">ForallVisT</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163575"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-788"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span id="local-6989586621679163573"><span class="annot"><span class="annottext">t :: Type
</span><a href="#local-6989586621679163573"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppT"><span class="hs-identifier hs-type">AppT</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163573"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-789"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span id="local-6989586621679163571"><span class="annot"><span class="annottext">t :: Type
</span><a href="#local-6989586621679163571"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppKindT"><span class="hs-identifier hs-type">AppKindT</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163571"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-790"></span><span>
</span><span id="line-791"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprUInfixT"><span class="hs-identifier hs-type">pprUInfixT</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-792"></span><span id="pprUInfixT"><span class="annot"><span class="annottext">pprUInfixT :: Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprUInfixT"><span class="hs-identifier hs-var hs-var">pprUInfixT</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#UInfixT"><span class="hs-identifier hs-type">UInfixT</span></a></span><span> </span><span id="local-6989586621679163569"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163569"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621679163568"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163568"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679163567"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163567"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprUInfixT"><span class="hs-identifier hs-var">pprUInfixT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163569"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs -&gt; Name -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#pprName%27"><span class="hs-identifier hs-var">pprName'</span></a></span><span> </span><span class="annot"><span class="annottext">NameIs
</span><a href="Language.Haskell.TH.Syntax.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163568"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprUInfixT"><span class="hs-identifier hs-var">pprUInfixT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163567"><span class="hs-identifier hs-var">y</span></a></span><span>
</span><span id="line-793"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprUInfixT"><span class="hs-identifier hs-var">pprUInfixT</span></a></span><span> </span><span id="local-6989586621679163566"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163566"><span class="hs-identifier hs-var">t</span></a></span></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163566"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-794"></span><span>
</span><span id="line-795"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163563"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-796"></span><span>    </span><span id="local-6989586621679163560"><span class="annot"><span class="annottext">ppr :: Type -&gt; Doc
</span><a href="#local-6989586621679163560"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallT"><span class="hs-identifier hs-type">ForallT</span></a></span><span> </span><span id="local-6989586621679163559"><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163559"><span class="hs-identifier hs-var">tvars</span></a></span></span><span> </span><span id="local-6989586621679163558"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163558"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621679163557"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163557"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[TyVarBndr Specificity] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForall"><span class="hs-identifier hs-var">pprForall</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr Specificity]
</span><a href="#local-6989586621679163559"><span class="hs-identifier hs-var">tvars</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163558"><span class="hs-identifier hs-var">ctxt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163557"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-797"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallVisT"><span class="hs-identifier hs-type">ForallVisT</span></a></span><span> </span><span id="local-6989586621679163556"><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679163556"><span class="hs-identifier hs-var">tvars</span></a></span></span><span> </span><span id="local-6989586621679163555"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163555"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[TyVarBndr ()] -&gt; Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprForallVis"><span class="hs-identifier hs-var">pprForallVis</span></a></span><span> </span><span class="annot"><span class="annottext">[TyVarBndr ()]
</span><a href="#local-6989586621679163556"><span class="hs-identifier hs-var">tvars</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163555"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-798"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span id="local-6989586621679163554"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163554"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Type, [TypeArg]) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; (Type, [TypeArg])
</span><a href="Language.Haskell.TH.Ppr.html#split"><span class="hs-identifier hs-var">split</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163554"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-799"></span><span>       </span><span class="hs-comment">-- Works, in a degenerate way, for SigT, and puts parens round (ty :: kind)</span><span>
</span><span id="line-800"></span><span>       </span><span class="hs-comment">-- See Note [Pretty-printing kind signatures]</span><span>
</span><span id="line-801"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163550"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TypeArg"><span class="hs-identifier hs-type">TypeArg</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-802"></span><span>    </span><span id="local-6989586621679163547"><span class="annot"><span class="annottext">ppr :: TypeArg -&gt; Doc
</span><a href="#local-6989586621679163547"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163545"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163545"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Bool
</span><a href="Language.Haskell.TH.Ppr.html#isStarT"><span class="hs-identifier hs-var">isStarT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163545"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163545"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-803"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TyArg"><span class="hs-identifier hs-type">TyArg</span></a></span><span> </span><span id="local-6989586621679163542"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163542"><span class="hs-identifier hs-var">ki</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'@'</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Bool
</span><a href="Language.Haskell.TH.Ppr.html#isStarT"><span class="hs-identifier hs-var">isStarT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163542"><span class="hs-identifier hs-var">ki</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163542"><span class="hs-identifier hs-var">ki</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-804"></span><span>
</span><span id="line-805"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendTypeArg"><span class="hs-identifier hs-type">pprParendTypeArg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TypeArg"><span class="hs-identifier hs-type">TypeArg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-806"></span><span id="pprParendTypeArg"><span class="annot"><span class="annottext">pprParendTypeArg :: TypeArg -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendTypeArg"><span class="hs-identifier hs-var hs-var">pprParendTypeArg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163540"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163540"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Bool
</span><a href="Language.Haskell.TH.Ppr.html#isStarT"><span class="hs-identifier hs-var">isStarT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163540"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163540"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-807"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprParendTypeArg"><span class="hs-identifier hs-var">pprParendTypeArg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TyArg"><span class="hs-identifier hs-type">TyArg</span></a></span><span> </span><span id="local-6989586621679163539"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163539"><span class="hs-identifier hs-var">ki</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'@'</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#parensIf"><span class="hs-identifier hs-var">parensIf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Bool
</span><a href="Language.Haskell.TH.Ppr.html#isStarT"><span class="hs-identifier hs-var">isStarT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163539"><span class="hs-identifier hs-var">ki</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163539"><span class="hs-identifier hs-var">ki</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-808"></span><span>
</span><span id="line-809"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#isStarT"><span class="hs-identifier hs-type">isStarT</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-810"></span><span id="isStarT"><span class="annot"><span class="annottext">isStarT :: Type -&gt; Bool
</span><a href="Language.Haskell.TH.Ppr.html#isStarT"><span class="hs-identifier hs-var hs-var">isStarT</span></a></span></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#StarT"><span class="hs-identifier hs-var">StarT</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span>
</span><span id="line-811"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#isStarT"><span class="hs-identifier hs-var">isStarT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span><span>
</span><span id="line-812"></span><span>
</span><span id="line-813"></span><span class="hs-comment">{- Note [Pretty-printing kind signatures]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GHC's parser only recognises a kind signature in a type when there are
parens around it.  E.g. the parens are required here:
   f :: (Int :: *)
   type instance F Int = (Bool :: *)
So we always print a SigT with parens (see #10050). -}</span><span>
</span><span id="line-820"></span><span>
</span><span id="line-821"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-type">pprTyApp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TypeArg"><span class="hs-identifier hs-type">TypeArg</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-822"></span><span id="pprTyApp"><span class="annot"><span class="annottext">pprTyApp :: (Type, [TypeArg]) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var hs-var">pprTyApp</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#MulArrowT"><span class="hs-identifier hs-var">MulArrowT</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PromotedT"><span class="hs-identifier hs-type">PromotedT</span></a></span><span> </span><span id="local-6989586621679163538"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163538"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163537"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163537"><span class="hs-identifier hs-var">arg1</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163536"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163536"><span class="hs-identifier hs-var">arg2</span></a></span></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-823"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163538"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Name -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3D%3D"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="Language.Haskell.TH.Syntax.html#oneName"><span class="hs-identifier hs-var">oneName</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163537"><span class="hs-identifier hs-var">arg1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%1 -&gt;&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163536"><span class="hs-identifier hs-var">arg2</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-824"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163538"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Name -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3D%3D"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="Language.Haskell.TH.Syntax.html#manyName"><span class="hs-identifier hs-var">manyName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163537"><span class="hs-identifier hs-var">arg1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163536"><span class="hs-identifier hs-var">arg2</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-825"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#MulArrowT"><span class="hs-identifier hs-var">MulArrowT</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163532"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163532"><span class="hs-identifier hs-var">argm</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163531"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163531"><span class="hs-identifier hs-var">arg1</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163530"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163530"><span class="hs-identifier hs-var">arg2</span></a></span></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-826"></span><span>                     </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163531"><span class="hs-identifier hs-var">arg1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163532"><span class="hs-identifier hs-var">argm</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163530"><span class="hs-identifier hs-var">arg2</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-827"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#ArrowT"><span class="hs-identifier hs-var">ArrowT</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163529"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163529"><span class="hs-identifier hs-var">arg1</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163528"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163528"><span class="hs-identifier hs-var">arg2</span></a></span></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163529"><span class="hs-identifier hs-var">arg1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163528"><span class="hs-identifier hs-var">arg2</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-828"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#EqualityT"><span class="hs-identifier hs-var">EqualityT</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163527"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163527"><span class="hs-identifier hs-var">arg1</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163526"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163526"><span class="hs-identifier hs-var">arg2</span></a></span></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-829"></span><span>    </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163527"><span class="hs-identifier hs-var">arg1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;~&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163526"><span class="hs-identifier hs-var">arg2</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-830"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#ListT"><span class="hs-identifier hs-var">ListT</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163525"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163525"><span class="hs-identifier hs-var">arg</span></a></span></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163525"><span class="hs-identifier hs-var">arg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-831"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupleT"><span class="hs-identifier hs-type">TupleT</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163524"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163524"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Type, [TypeArg]) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Type
</span><a href="Language.Haskell.TH.Syntax.html#ConT"><span class="hs-identifier hs-var">ConT</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Name
</span><a href="Language.Haskell.TH.Syntax.html#tupleTypeName"><span class="hs-identifier hs-var">tupleTypeName</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163524"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-832"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PromotedTupleT"><span class="hs-identifier hs-type">PromotedTupleT</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163523"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163523"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Type, [TypeArg]) -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Type
</span><a href="Language.Haskell.TH.Syntax.html#PromotedT"><span class="hs-identifier hs-var">PromotedT</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Name
</span><a href="Language.Haskell.TH.Syntax.html#tupleDataName"><span class="hs-identifier hs-var">tupleDataName</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163523"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-833"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TupleT"><span class="hs-identifier hs-type">TupleT</span></a></span><span> </span><span id="local-6989586621679163522"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163522"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163521"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163521"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-834"></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[TypeArg] -&gt; SumAlt
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; SumAlt
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163521"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3D%3D"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163522"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163520"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163520"><span class="hs-identifier hs-var">args'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(TypeArg -&gt; Maybe Type) -&gt; [TypeArg] -&gt; Maybe Cxt
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">TypeArg -&gt; Maybe Type
</span><a href="Language.Haskell.TH.Ppr.html#fromTANormal"><span class="hs-identifier hs-var">fromTANormal</span></a></span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163521"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-835"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Cxt -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163520"><span class="hs-identifier hs-var">args'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-836"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PromotedTupleT"><span class="hs-identifier hs-type">PromotedTupleT</span></a></span><span> </span><span id="local-6989586621679163517"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163517"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163516"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163516"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-837"></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[TypeArg] -&gt; SumAlt
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; SumAlt
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163516"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3D%3D"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163517"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679163515"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163515"><span class="hs-identifier hs-var">args'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(TypeArg -&gt; Maybe Type) -&gt; [TypeArg] -&gt; Maybe Cxt
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">TypeArg -&gt; Maybe Type
</span><a href="Language.Haskell.TH.Ppr.html#fromTANormal"><span class="hs-identifier hs-var">fromTANormal</span></a></span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163516"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-838"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#quoteParens"><span class="hs-identifier hs-var">quoteParens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Cxt -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163515"><span class="hs-identifier hs-var">args'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-839"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyApp"><span class="hs-identifier hs-var">pprTyApp</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163514"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163514"><span class="hs-identifier hs-var">fun</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163513"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163513"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163514"><span class="hs-identifier hs-var">fun</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TypeArg -&gt; Doc) -&gt; [TypeArg] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">TypeArg -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprParendTypeArg"><span class="hs-identifier hs-var">pprParendTypeArg</span></a></span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163513"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-840"></span><span>
</span><span id="line-841"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#fromTANormal"><span class="hs-identifier hs-type">fromTANormal</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TypeArg"><span class="hs-identifier hs-type">TypeArg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span>
</span><span id="line-842"></span><span id="fromTANormal"><span class="annot"><span class="annottext">fromTANormal :: TypeArg -&gt; Maybe Type
</span><a href="Language.Haskell.TH.Ppr.html#fromTANormal"><span class="hs-identifier hs-var hs-var">fromTANormal</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-type">TANormal</span></a></span><span> </span><span id="local-6989586621679163512"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163512"><span class="hs-identifier hs-var">arg</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Maybe Type
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163512"><span class="hs-identifier hs-var">arg</span></a></span><span>
</span><span id="line-843"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#fromTANormal"><span class="hs-identifier hs-var">fromTANormal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TyArg"><span class="hs-identifier hs-type">TyArg</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Type
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-844"></span><span>
</span><span id="line-845"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-type">pprFunArgType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>    </span><span class="hs-comment">-- Should really use a precedence argument</span><span>
</span><span id="line-846"></span><span class="hs-comment">-- Everything except forall and (-&gt;) binds more tightly than (-&gt;)</span><span>
</span><span id="line-847"></span><span id="pprFunArgType"><span class="annot"><span class="annottext">pprFunArgType :: Type -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var hs-var">pprFunArgType</span></a></span></span><span> </span><span id="local-6989586621679163511"><span class="annot"><span class="annottext">ty :: Type
</span><a href="#local-6989586621679163511"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallT"><span class="hs-identifier hs-type">ForallT</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>                 </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163511"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-848"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span id="local-6989586621679163510"><span class="annot"><span class="annottext">ty :: Type
</span><a href="#local-6989586621679163510"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallVisT"><span class="hs-identifier hs-type">ForallVisT</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163510"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-849"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span id="local-6989586621679163509"><span class="annot"><span class="annottext">ty :: Type
</span><a href="#local-6989586621679163509"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#MulArrowT"><span class="hs-identifier hs-var">MulArrowT</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppT"><span class="hs-operator hs-type">`AppT`</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppT"><span class="hs-operator hs-type">`AppT`</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppT"><span class="hs-operator hs-type">`AppT`</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163509"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-850"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span id="local-6989586621679163508"><span class="annot"><span class="annottext">ty :: Type
</span><a href="#local-6989586621679163508"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="Language.Haskell.TH.Syntax.html#ArrowT"><span class="hs-identifier hs-var">ArrowT</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppT"><span class="hs-operator hs-type">`AppT`</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppT"><span class="hs-operator hs-type">`AppT`</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163508"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-851"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span id="local-6989586621679163507"><span class="annot"><span class="annottext">ty :: Type
</span><a href="#local-6989586621679163507"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SigT"><span class="hs-identifier hs-type">SigT</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163507"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-852"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprFunArgType"><span class="hs-identifier hs-var">pprFunArgType</span></a></span><span> </span><span id="local-6989586621679163506"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163506"><span class="hs-identifier hs-var">ty</span></a></span></span><span>                              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163506"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-853"></span><span>
</span><span id="line-854"></span><span class="hs-keyword">data</span><span> </span><span id="ForallVisFlag"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ForallVisFlag"><span class="hs-identifier hs-var">ForallVisFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="ForallVis"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ForallVis"><span class="hs-identifier hs-var">ForallVis</span></a></span></span><span>   </span><span class="hs-comment">-- forall a -&gt; {...}</span><span>
</span><span id="line-855"></span><span>                   </span><span class="hs-glyph">|</span><span> </span><span id="ForallInvis"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ForallInvis"><span class="hs-identifier hs-var">ForallInvis</span></a></span></span><span> </span><span class="hs-comment">-- forall a.   {...}</span><span>
</span><span id="line-856"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span id="local-6989586621679163500"><span id="local-6989586621679163502"><span id="local-6989586621679163504"><span class="annot"><span class="annottext">SumAlt -&gt; ForallVisFlag -&gt; String -&gt; String
[ForallVisFlag] -&gt; String -&gt; String
ForallVisFlag -&gt; String
(SumAlt -&gt; ForallVisFlag -&gt; String -&gt; String)
-&gt; (ForallVisFlag -&gt; String)
-&gt; ([ForallVisFlag] -&gt; String -&gt; String)
-&gt; Show ForallVisFlag
forall a.
(SumAlt -&gt; a -&gt; String -&gt; String)
-&gt; (a -&gt; String) -&gt; ([a] -&gt; String -&gt; String) -&gt; Show a
showList :: [ForallVisFlag] -&gt; String -&gt; String
$cshowList :: [ForallVisFlag] -&gt; String -&gt; String
show :: ForallVisFlag -&gt; String
$cshow :: ForallVisFlag -&gt; String
showsPrec :: SumAlt -&gt; ForallVisFlag -&gt; String -&gt; String
$cshowsPrec :: SumAlt -&gt; ForallVisFlag -&gt; String -&gt; String
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span>
</span><span id="line-857"></span><span>
</span><span id="line-858"></span><span class="hs-keyword">data</span><span> </span><span id="TypeArg"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TypeArg"><span class="hs-identifier hs-var">TypeArg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="TANormal"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-var">TANormal</span></a></span></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span>
</span><span id="line-859"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span id="TyArg"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TyArg"><span class="hs-identifier hs-var">TyArg</span></a></span></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Kind"><span class="hs-identifier hs-type">Kind</span></a></span><span>
</span><span id="line-860"></span><span>
</span><span id="line-861"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#split"><span class="hs-identifier hs-type">split</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#TypeArg"><span class="hs-identifier hs-type">TypeArg</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>    </span><span class="hs-comment">-- Split into function and args</span><span>
</span><span id="line-862"></span><span id="split"><span class="annot"><span class="annottext">split :: Type -&gt; (Type, [TypeArg])
</span><a href="Language.Haskell.TH.Ppr.html#split"><span class="hs-identifier hs-var hs-var">split</span></a></span></span><span> </span><span id="local-6989586621679163498"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163498"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; [TypeArg] -&gt; (Type, [TypeArg])
</span><a href="#local-6989586621679163497"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163498"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-863"></span><span>    </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679163497"><span class="annot"><span class="annottext">go :: Type -&gt; [TypeArg] -&gt; (Type, [TypeArg])
</span><a href="#local-6989586621679163497"><span class="hs-identifier hs-var hs-var">go</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppT"><span class="hs-identifier hs-type">AppT</span></a></span><span> </span><span id="local-6989586621679163496"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163496"><span class="hs-identifier hs-var">t1</span></a></span></span><span> </span><span id="local-6989586621679163495"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163495"><span class="hs-identifier hs-var">t2</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679163494"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163494"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; [TypeArg] -&gt; (Type, [TypeArg])
</span><a href="#local-6989586621679163497"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163496"><span class="hs-identifier hs-var">t1</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; TypeArg
</span><a href="Language.Haskell.TH.Ppr.html#TANormal"><span class="hs-identifier hs-var">TANormal</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163495"><span class="hs-identifier hs-var">t2</span></a></span><span class="annot"><span class="annottext">TypeArg -&gt; [TypeArg] -&gt; [TypeArg]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163494"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-864"></span><span>          </span><span class="annot"><a href="#local-6989586621679163497"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#AppKindT"><span class="hs-identifier hs-type">AppKindT</span></a></span><span> </span><span id="local-6989586621679163493"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163493"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621679163492"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163492"><span class="hs-identifier hs-var">ki</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679163491"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163491"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; [TypeArg] -&gt; (Type, [TypeArg])
</span><a href="#local-6989586621679163497"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163493"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; TypeArg
</span><a href="Language.Haskell.TH.Ppr.html#TyArg"><span class="hs-identifier hs-var">TyArg</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163492"><span class="hs-identifier hs-var">ki</span></a></span><span class="annot"><span class="annottext">TypeArg -&gt; [TypeArg] -&gt; [TypeArg]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163491"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-865"></span><span>          </span><span class="annot"><a href="#local-6989586621679163497"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span id="local-6989586621679163490"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163490"><span class="hs-identifier hs-var">ty</span></a></span></span><span>           </span><span id="local-6989586621679163489"><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163489"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163490"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[TypeArg]
</span><a href="#local-6989586621679163489"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-866"></span><span>
</span><span id="line-867"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyLit"><span class="hs-identifier hs-type">pprTyLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyLit"><span class="hs-identifier hs-type">TyLit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-868"></span><span id="pprTyLit"><span class="annot"><span class="annottext">pprTyLit :: TyLit -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyLit"><span class="hs-identifier hs-var hs-var">pprTyLit</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#NumTyLit"><span class="hs-identifier hs-type">NumTyLit</span></a></span><span> </span><span id="local-6989586621679163487"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679163487"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621679163487"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-869"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyLit"><span class="hs-identifier hs-var">pprTyLit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#StrTyLit"><span class="hs-identifier hs-type">StrTyLit</span></a></span><span> </span><span id="local-6989586621679163485"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163485"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163485"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-870"></span><span>
</span><span id="line-871"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163482"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyLit"><span class="hs-identifier hs-type">TyLit</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-872"></span><span>  </span><span id="local-6989586621679163481"><span class="annot"><span class="annottext">ppr :: TyLit -&gt; Doc
</span><a href="#local-6989586621679163481"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TyLit -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyLit"><span class="hs-identifier hs-var">pprTyLit</span></a></span><span>
</span><span id="line-873"></span><span>
</span><span id="line-874"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-875"></span><span class="hs-keyword">class</span><span> </span><span id="PprFlag"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#PprFlag"><span class="hs-identifier hs-var">PprFlag</span></a></span></span><span> </span><span id="local-6989586621679164899"><span class="annot"><a href="#local-6989586621679164899"><span class="hs-identifier hs-type">flag</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-876"></span><span>    </span><span id="pprTyVarBndr"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyVarBndr"><span class="hs-identifier hs-type">pprTyVarBndr</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarBndr"><span class="hs-identifier hs-type">TyVarBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164899"><span class="hs-identifier hs-type">flag</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-877"></span><span>
</span><span id="line-878"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#PprFlag"><span class="hs-identifier hs-type">PprFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-879"></span><span>    </span><span id="local-6989586621679163474"><span class="annot"><span class="annottext">pprTyVarBndr :: TyVarBndr () -&gt; Doc
</span><a href="#local-6989586621679163474"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprTyVarBndr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PlainTV"><span class="hs-identifier hs-type">PlainTV</span></a></span><span> </span><span id="local-6989586621679163472"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163472"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163472"><span class="hs-identifier hs-var">nm</span></a></span><span>
</span><span id="line-880"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyVarBndr"><span class="hs-identifier hs-var">pprTyVarBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#KindedTV"><span class="hs-identifier hs-type">KindedTV</span></a></span><span> </span><span id="local-6989586621679163470"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163470"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span id="local-6989586621679163469"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163469"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163470"><span class="hs-identifier hs-var">nm</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163469"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-881"></span><span>
</span><span id="line-882"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#PprFlag"><span class="hs-identifier hs-type">PprFlag</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Specificity"><span class="hs-identifier hs-type">Specificity</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-883"></span><span>    </span><span id="local-6989586621679163461"><span class="annot"><span class="annottext">pprTyVarBndr :: TyVarBndr Specificity -&gt; Doc
</span><a href="#local-6989586621679163461"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprTyVarBndr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PlainTV"><span class="hs-identifier hs-type">PlainTV</span></a></span><span> </span><span id="local-6989586621679163460"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163460"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span class="annot"><span class="annottext">Specificity
</span><a href="Language.Haskell.TH.Syntax.html#SpecifiedSpec"><span class="hs-identifier hs-var">SpecifiedSpec</span></a></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163460"><span class="hs-identifier hs-var">nm</span></a></span><span>
</span><span id="line-884"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyVarBndr"><span class="hs-identifier hs-var">pprTyVarBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#PlainTV"><span class="hs-identifier hs-type">PlainTV</span></a></span><span> </span><span id="local-6989586621679163458"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163458"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span class="annot"><span class="annottext">Specificity
</span><a href="Language.Haskell.TH.Syntax.html#InferredSpec"><span class="hs-identifier hs-var">InferredSpec</span></a></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163458"><span class="hs-identifier hs-var">nm</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-885"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyVarBndr"><span class="hs-identifier hs-var">pprTyVarBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#KindedTV"><span class="hs-identifier hs-type">KindedTV</span></a></span><span> </span><span id="local-6989586621679163456"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163456"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span class="annot"><span class="annottext">Specificity
</span><a href="Language.Haskell.TH.Syntax.html#SpecifiedSpec"><span class="hs-identifier hs-var">SpecifiedSpec</span></a></span><span> </span><span id="local-6989586621679163455"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163455"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163456"><span class="hs-identifier hs-var">nm</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163455"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-886"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprTyVarBndr"><span class="hs-identifier hs-var">pprTyVarBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#KindedTV"><span class="hs-identifier hs-type">KindedTV</span></a></span><span> </span><span id="local-6989586621679163454"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163454"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span class="annot"><span class="annottext">Specificity
</span><a href="Language.Haskell.TH.Syntax.html#InferredSpec"><span class="hs-identifier hs-var">InferredSpec</span></a></span><span>  </span><span id="local-6989586621679163453"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163453"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621679163454"><span class="hs-identifier hs-var">nm</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163453"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-887"></span><span>
</span><span id="line-888"></span><span id="local-6989586621679164959"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163450"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#PprFlag"><span class="hs-identifier hs-type">PprFlag</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164959"><span class="hs-identifier hs-type">flag</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#TyVarBndr"><span class="hs-identifier hs-type">TyVarBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164959"><span class="hs-identifier hs-type">flag</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-889"></span><span>    </span><span id="local-6989586621679163448"><span class="annot"><span class="annottext">ppr :: TyVarBndr flag -&gt; Doc
</span><a href="#local-6989586621679163448"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621679163447"><span class="annot"><span class="annottext">TyVarBndr flag
</span><a href="#local-6989586621679163447"><span class="hs-identifier hs-var">bndr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TyVarBndr flag -&gt; Doc
forall flag. PprFlag flag =&gt; TyVarBndr flag -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprTyVarBndr"><span class="hs-identifier hs-var">pprTyVarBndr</span></a></span><span> </span><span class="annot"><span class="annottext">TyVarBndr flag
</span><a href="#local-6989586621679163447"><span class="hs-identifier hs-var">bndr</span></a></span></span><span>
</span><span id="line-890"></span><span>
</span><span id="line-891"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163444"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Role"><span class="hs-identifier hs-type">Role</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-892"></span><span>    </span><span id="local-6989586621679163443"><span class="annot"><span class="annottext">ppr :: Role -&gt; Doc
</span><a href="#local-6989586621679163443"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="Language.Haskell.TH.Syntax.html#NominalR"><span class="hs-identifier hs-var">NominalR</span></a></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;nominal&quot;</span></span><span>
</span><span id="line-893"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="Language.Haskell.TH.Syntax.html#RepresentationalR"><span class="hs-identifier hs-var">RepresentationalR</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;representational&quot;</span></span><span>
</span><span id="line-894"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="Language.Haskell.TH.Syntax.html#PhantomR"><span class="hs-identifier hs-var">PhantomR</span></a></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;phantom&quot;</span></span><span>
</span><span id="line-895"></span><span>    </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="Language.Haskell.TH.Syntax.html#InferR"><span class="hs-identifier hs-var">InferR</span></a></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;_&quot;</span></span><span>
</span><span id="line-896"></span><span>
</span><span id="line-897"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-898"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-type">pprCxt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Cxt"><span class="hs-identifier hs-type">Cxt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-899"></span><span id="pprCxt"><span class="annot"><span class="annottext">pprCxt :: Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var hs-var">pprCxt</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-900"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#pprCxt"><span class="hs-identifier hs-var">pprCxt</span></a></span><span> </span><span id="local-6989586621679163438"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163438"><span class="hs-identifier hs-var">ts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-var">ppr_cxt_preds</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163438"><span class="hs-identifier hs-var">ts</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&gt;&quot;</span></span><span>
</span><span id="line-901"></span><span>
</span><span id="line-902"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-type">ppr_cxt_preds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Cxt"><span class="hs-identifier hs-type">Cxt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-903"></span><span id="ppr_cxt_preds"><span class="annot"><span class="annottext">ppr_cxt_preds :: Cxt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-var hs-var">ppr_cxt_preds</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-904"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-var">ppr_cxt_preds</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621679163437"><span class="annot"><span class="annottext">t :: Type
</span><a href="#local-6989586621679163437"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ImplicitParamT"><span class="hs-identifier hs-type">ImplicitParamT</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163437"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-905"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-var">ppr_cxt_preds</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621679163436"><span class="annot"><span class="annottext">t :: Type
</span><a href="#local-6989586621679163436"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#ForallT"><span class="hs-identifier hs-type">ForallT</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163436"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-906"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-var">ppr_cxt_preds</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621679163435"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163435"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621679163435"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-907"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#ppr_cxt_preds"><span class="hs-identifier hs-var">ppr_cxt_preds</span></a></span><span> </span><span id="local-6989586621679163434"><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163434"><span class="hs-identifier hs-var">ts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Cxt -&gt; Doc
forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var">commaSep</span></a></span><span> </span><span class="annot"><span class="annottext">Cxt
</span><a href="#local-6989586621679163434"><span class="hs-identifier hs-var">ts</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-908"></span><span>
</span><span id="line-909"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-910"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163431"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Range"><span class="hs-identifier hs-type">Range</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-911"></span><span>    </span><span id="local-6989586621679163422"><span class="annot"><span class="annottext">ppr :: Range -&gt; Doc
</span><a href="#local-6989586621679163422"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (Range -&gt; Doc) -&gt; Range -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Range -&gt; Doc
</span><a href="#local-6989586621679163421"><span class="hs-identifier hs-var">pprRange</span></a></span><span>
</span><span id="line-912"></span><span>        </span><span class="hs-keyword">where</span><span> </span><span class="annot"><a href="#local-6989586621679163421"><span class="hs-identifier hs-type">pprRange</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Range"><span class="hs-identifier hs-type">Range</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-913"></span><span>              </span><span id="local-6989586621679163421"><span class="annot"><span class="annottext">pprRange :: Range -&gt; Doc
</span><a href="#local-6989586621679163421"><span class="hs-identifier hs-var hs-var">pprRange</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FromR"><span class="hs-identifier hs-type">FromR</span></a></span><span> </span><span id="local-6989586621679163419"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163419"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163419"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;..&quot;</span></span><span>
</span><span id="line-914"></span><span>              </span><span class="annot"><a href="#local-6989586621679163421"><span class="hs-identifier hs-var">pprRange</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FromThenR"><span class="hs-identifier hs-type">FromThenR</span></a></span><span> </span><span id="local-6989586621679163417"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163417"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621679163416"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163416"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163417"><span class="hs-identifier hs-var">e1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;,&quot;</span></span><span>
</span><span id="line-915"></span><span>                                        </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163416"><span class="hs-identifier hs-var">e2</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;..&quot;</span></span><span>
</span><span id="line-916"></span><span>              </span><span class="annot"><a href="#local-6989586621679163421"><span class="hs-identifier hs-var">pprRange</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FromToR"><span class="hs-identifier hs-type">FromToR</span></a></span><span> </span><span id="local-6989586621679163414"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163414"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621679163413"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163413"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163414"><span class="hs-identifier hs-var">e1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;..&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163413"><span class="hs-identifier hs-var">e2</span></a></span><span>
</span><span id="line-917"></span><span>              </span><span class="annot"><a href="#local-6989586621679163421"><span class="hs-identifier hs-var">pprRange</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#FromThenToR"><span class="hs-identifier hs-type">FromThenToR</span></a></span><span> </span><span id="local-6989586621679163411"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163411"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621679163410"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163410"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span id="local-6989586621679163409"><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163409"><span class="hs-identifier hs-var">e3</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163411"><span class="hs-identifier hs-var">e1</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;,&quot;</span></span><span>
</span><span id="line-918"></span><span>                                             </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163410"><span class="hs-identifier hs-var">e2</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;..&quot;</span></span><span>
</span><span id="line-919"></span><span>                                             </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Exp -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Exp
</span><a href="#local-6989586621679163409"><span class="hs-identifier hs-var">e3</span></a></span><span>
</span><span id="line-920"></span><span>
</span><span id="line-921"></span><span class="hs-comment">------------------------------</span><span>
</span><span id="line-922"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-type">where_clause</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Dec"><span class="hs-identifier hs-type">Dec</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-923"></span><span id="where_clause"><span class="annot"><span class="annottext">where_clause :: [Dec] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-var hs-var">where_clause</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-924"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#where_clause"><span class="hs-identifier hs-var">where_clause</span></a></span><span> </span><span id="local-6989586621679163408"><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679163408"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="Language.Haskell.TH.Ppr.html#nestDepth"><span class="hs-identifier hs-var">nestDepth</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;where&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Dec -&gt; Doc) -&gt; [Dec] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Dec -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr_dec"><span class="hs-identifier hs-var">ppr_dec</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Dec]
</span><a href="#local-6989586621679163408"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-925"></span><span>
</span><span id="line-926"></span><span id="local-6989586621679164912"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#showtextl"><span class="hs-identifier hs-type">showtextl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-type">Show</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679164912"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679164912"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span></span><span>
</span><span id="line-927"></span><span id="showtextl"><span class="annot"><span class="annottext">showtextl :: forall a. Show a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#showtextl"><span class="hs-identifier hs-var hs-var">showtextl</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; (a -&gt; String) -&gt; a -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Char) -&gt; String -&gt; String
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char
</span><a href="../../base/src/GHC.Unicode.html#toLower"><span class="hs-identifier hs-var">toLower</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; String) -&gt; (a -&gt; String) -&gt; a -&gt; String
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span>
</span><span id="line-928"></span><span>
</span><span id="line-929"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#hashParens"><span class="hs-identifier hs-type">hashParens</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-930"></span><span id="hashParens"><span class="annot"><span class="annottext">hashParens :: Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#hashParens"><span class="hs-identifier hs-var hs-var">hashParens</span></a></span></span><span> </span><span id="local-6989586621679163405"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163405"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;(# &quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163405"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; #)&quot;</span></span><span>
</span><span id="line-931"></span><span>
</span><span id="line-932"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#quoteParens"><span class="hs-identifier hs-type">quoteParens</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-933"></span><span id="quoteParens"><span class="annot"><span class="annottext">quoteParens :: Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#quoteParens"><span class="hs-identifier hs-var hs-var">quoteParens</span></a></span></span><span> </span><span id="local-6989586621679163404"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163404"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'(&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163404"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;)&quot;</span></span><span>
</span><span id="line-934"></span><span>
</span><span id="line-935"></span><span class="hs-comment">-----------------------------</span><span>
</span><span id="line-936"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679163401"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Loc"><span class="hs-identifier hs-type">Loc</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-937"></span><span>  </span><span id="local-6989586621679163400"><span class="annot"><span class="annottext">ppr :: Loc -&gt; Doc
</span><a href="#local-6989586621679163400"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#Loc"><span class="hs-identifier hs-type">Loc</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">loc_module :: Loc -&gt; String
</span><a href="Language.Haskell.TH.Syntax.html#loc_module"><span class="hs-identifier hs-var">loc_module</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621679163397"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163397"><span class="hs-identifier hs-var">md</span></a></span></span><span>
</span><span id="line-938"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">loc_package :: Loc -&gt; String
</span><a href="Language.Haskell.TH.Syntax.html#loc_package"><span class="hs-identifier hs-var">loc_package</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621679163395"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163395"><span class="hs-identifier hs-var">pkg</span></a></span></span><span>
</span><span id="line-939"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">loc_start :: Loc -&gt; CharPos
</span><a href="Language.Haskell.TH.Syntax.html#loc_start"><span class="hs-identifier hs-var">loc_start</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163393"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163393"><span class="hs-identifier hs-var">start_ln</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163392"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163392"><span class="hs-identifier hs-var">start_col</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-940"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">loc_end :: Loc -&gt; CharPos
</span><a href="Language.Haskell.TH.Syntax.html#loc_end"><span class="hs-identifier hs-var">loc_end</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679163390"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163390"><span class="hs-identifier hs-var">end_ln</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679163389"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163389"><span class="hs-identifier hs-var">end_col</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-941"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163395"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679163397"><span class="hs-identifier hs-var">md</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-942"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163393"><span class="hs-identifier hs-var">start_ln</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163392"><span class="hs-identifier hs-var">start_col</span></a></span><span>
</span><span id="line-943"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&quot;</span></span><span>
</span><span id="line-944"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163390"><span class="hs-identifier hs-var">end_ln</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163389"><span class="hs-identifier hs-var">end_col</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-945"></span><span>
</span><span id="line-946"></span><span class="hs-comment">-- Takes a list of printable things and prints them separated by commas followed</span><span>
</span><span id="line-947"></span><span class="hs-comment">-- by space.</span><span>
</span><span id="line-948"></span><span id="local-6989586621679163388"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-type">commaSep</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679163388"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679163388"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span></span><span>
</span><span id="line-949"></span><span id="commaSep"><span class="annot"><span class="annottext">commaSep :: forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSep"><span class="hs-identifier hs-var hs-var">commaSep</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; Doc
forall a. (a -&gt; Doc) -&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepWith"><span class="hs-identifier hs-var">commaSepWith</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span>
</span><span id="line-950"></span><span>
</span><span id="line-951"></span><span class="hs-comment">-- Takes a list of things and prints them with the given pretty-printing</span><span>
</span><span id="line-952"></span><span class="hs-comment">-- function, separated by commas followed by space.</span><span>
</span><span id="line-953"></span><span id="local-6989586621679164935"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#commaSepWith"><span class="hs-identifier hs-type">commaSepWith</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679164935"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679164935"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span></span><span>
</span><span id="line-954"></span><span id="commaSepWith"><span class="annot"><span class="annottext">commaSepWith :: forall a. (a -&gt; Doc) -&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#commaSepWith"><span class="hs-identifier hs-var hs-var">commaSepWith</span></a></span></span><span> </span><span id="local-6989586621679163385"><span class="annot"><span class="annottext">a -&gt; Doc
</span><a href="#local-6989586621679163385"><span class="hs-identifier hs-var">pprFun</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; ([a] -&gt; [Doc]) -&gt; [a] -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; ([a] -&gt; [Doc]) -&gt; [a] -&gt; [Doc]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
</span><a href="#local-6989586621679163385"><span class="hs-identifier hs-var">pprFun</span></a></span><span>
</span><span id="line-955"></span><span>
</span><span id="line-956"></span><span class="hs-comment">-- Takes a list of printable things and prints them separated by semicolons</span><span>
</span><span id="line-957"></span><span class="hs-comment">-- followed by space.</span><span>
</span><span id="line-958"></span><span id="local-6989586621679163384"><span class="annot"><a href="Language.Haskell.TH.Ppr.html#semiSep"><span class="hs-identifier hs-type">semiSep</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#Ppr"><span class="hs-identifier hs-type">Ppr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679163384"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679163384"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span></span><span>
</span><span id="line-959"></span><span id="semiSep"><span class="annot"><span class="annottext">semiSep :: forall a. Ppr a =&gt; [a] -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#semiSep"><span class="hs-identifier hs-var hs-var">semiSep</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; ([a] -&gt; [Doc]) -&gt; [a] -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="Language.Haskell.TH.PprLib.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.PprLib.html#semi"><span class="hs-identifier hs-var">semi</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; [Doc]) -&gt; ([a] -&gt; [Doc]) -&gt; [a] -&gt; [Doc]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Ppr a =&gt; a -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span>
</span><span id="line-960"></span><span>
</span><span id="line-961"></span><span class="hs-comment">-- Prints out the series of vertical bars that wraps an expression or pattern</span><span>
</span><span id="line-962"></span><span class="hs-comment">-- used in an unboxed sum.</span><span>
</span><span id="line-963"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#unboxedSumBars"><span class="hs-identifier hs-type">unboxedSumBars</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SumAlt"><span class="hs-identifier hs-type">SumAlt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.Syntax.html#SumArity"><span class="hs-identifier hs-type">SumArity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-964"></span><span id="unboxedSumBars"><span class="annot"><span class="annottext">unboxedSumBars :: Doc -&gt; SumAlt -&gt; SumAlt -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#unboxedSumBars"><span class="hs-identifier hs-var hs-var">unboxedSumBars</span></a></span></span><span> </span><span id="local-6989586621679163379"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163379"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621679163378"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163378"><span class="hs-identifier hs-var">alt</span></a></span></span><span> </span><span id="local-6989586621679163377"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163377"><span class="hs-identifier hs-var">arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="Language.Haskell.TH.Ppr.html#hashParens"><span class="hs-identifier hs-var">hashParens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; Doc -&gt; Doc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-965"></span><span>    </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="#local-6989586621679163376"><span class="hs-identifier hs-var">bars</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163378"><span class="hs-identifier hs-var">alt</span></a></span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; SumAlt
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">SumAlt
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621679163379"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; Doc
</span><a href="#local-6989586621679163376"><span class="hs-identifier hs-var">bars</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163377"><span class="hs-identifier hs-var">arity</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt -&gt; SumAlt -&gt; SumAlt
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163378"><span class="hs-identifier hs-var">alt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-966"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-967"></span><span>    </span><span id="local-6989586621679163376"><span class="annot"><span class="annottext">bars :: SumAlt -&gt; Doc
</span><a href="#local-6989586621679163376"><span class="hs-identifier hs-var hs-var">bars</span></a></span></span><span> </span><span id="local-6989586621679163375"><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163375"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SumAlt -&gt; Doc -&gt; [Doc]
forall a. SumAlt -&gt; a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#replicate"><span class="hs-identifier hs-var">replicate</span></a></span><span> </span><span class="annot"><span class="annottext">SumAlt
</span><a href="#local-6989586621679163375"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var">bar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-968"></span><span>
</span><span id="line-969"></span><span class="hs-comment">-- Text containing the vertical bar character.</span><span>
</span><span id="line-970"></span><span class="annot"><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-type">bar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Language.Haskell.TH.PprLib.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-971"></span><span id="bar"><span class="annot"><span class="annottext">bar :: Doc
</span><a href="Language.Haskell.TH.Ppr.html#bar"><span class="hs-identifier hs-var hs-var">bar</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="Language.Haskell.TH.PprLib.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'|'</span></span><span>
</span><span id="line-972"></span></pre></body></html>